Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Woher kommen überzählige Blanks in der Ausgabedatei

Frage Entwicklung Batch & Shell

Mitglied: josken69

josken69 (Level 1) - Jetzt verbinden

11.11.2009, aktualisiert 12.11.2009, 3216 Aufrufe, 7 Kommentare

Hallo,
ich habe folgendes Script, welches eine Ursprungsdatei umwandeln soll und die Zeilen mit Blanks bis zu einer gewissen Position auffüllen soll. Dabei werden in der Ausgabedatei aber am Anfang ein Blank und am Ende 2 Blanks zuviel rausgeschrieben.
Kann mir jemand den Grund nennen?
Hier mein Script:

01.
@echo off & setlocal  
02.
Set "File=c:\Alone\input.txt" 
03.
Set "NewFile=c:\Alone\output.txt" 
04.
if exist "%NewFile%" del "%NewFile%" 
05.
set "Blanks=                                                                                                    " 
06.
for /f "usebackq delims=" %%i in ("%File%") do set "zeile=%%i%Blanks%" & call :ProcessLine  
07.
Goto :eof  
08.
:ProcessLine 
09.
Set "zeile=%zeile:&=§%"  
10.
set "zeile=%zeile:~0,128%  
11.
Set "lineOut=%zeile:§=^&%"  
12.
Echo >>"%NewFile%" %lineOut%  
13.
goto :eof

Ich häng mal zwei Screenshots der Input und output-Datei an. (Kann man hier auch files hochladen?)
8a77ece991c57feab3cc5f7144303d70-input - Klicke auf das Bild, um es zu vergrößern
76742de4129612effdb911ceb499e853-output - Klicke auf das Bild, um es zu vergrößern

Vielen Dank
Mitglied: 60730
11.11.2009 um 17:07 Uhr
Servus,

das sieht nach Biber / Bastla aus...

Aber - ob einer der beiden in Zeile 5 das " vergessen hat?

mach mal eines rein..
Gruß
Bitte warten ..
Mitglied: bastla
11.11.2009 um 17:32 Uhr
Hallo josken69!
Kann man hier auch files hochladen?
Das nicht, aber für Textdateien bietet es sich an, sie (auszugsweise) unter Vewendung der Code-Formatierung zu posten ...

Die Ausgabedatei lt Screenshot sieht ja eigentlich ganz manierlich aus - ist aber wohl der "Soll"-Zustand ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
11.11.2009 um 18:15 Uhr
Moin josken69,

mindestens eines der überzähligen Leerzeichen ist erklärlich durch den "Echo"-Befehl in Zeile 12

Und die %Blank%-Variable würde ich so umbenennen, dass (dir) beim späteren Lesen wieder einfällt, was da drin ist.

Also skizziert und ungetestet so:
01.
@echo off & setlocal  
02.
Set "File=c:\Alone\input.txt" 
03.
Set "NewFile=c:\Alone\output.txt" 
04.
if exist "%NewFile%" del "%NewFile%" 
05.
set "Blanks100=                                                                                                    " 
06.
for /f "usebackq delims=" %%i in ("%File%") do set "zeile=%%i%Blanks100%" & call :ProcessLine  
07.
Goto :eof  
08.
:ProcessLine 
09.
Set "zeile=%zeile:&=§%"  
10.
set "zeile=%zeile:~0,128%  
11.
Set "lineOut=%zeile:§=^&%"  
12.
Echo %lineOut%>>"%NewFile%" 
13.
REM Zeile 12-alt: Echo >>"%NewFile%" %lineOut%   
14.
goto :eof
[Zeile 12-alt hatte 1 Leerzeichen vor den ">>" und 2 nach %lineOut%]

Grüße
Biber
Bitte warten ..
Mitglied: josken69
12.11.2009 um 09:03 Uhr
Hallo und vielen Dank,
damit sind die überzähligen Blanks entfernt. Jetzt habe ich aber noch ein neues Problem. In der ersten Zeile wird das letzte Zeichen abgeschnitten und der CRLF kommt in Position 127. Warum passiert das denn??
Wenn ich den Wert in der Zeile Set "zeile=%zeile:~0,128% auf 129 ändere kommen alle CRLFs auf die gleiche Position, auch in Zeile 1. Und bei 128 kürzt er mir in der ersten Zeile die letzte Position weg.
Hier der Input
01.
  
02.
0128ALK3333331000000000Company & Co Name          011009    02228899000000000000               03302009                        1 
03.
0245C30070010200411440001141878000000000000005000 0000000000033333310227255700000000060273   Mustermann, Max 
04.
Company Immergleich        LEV 10.09 NR.1111.1.0001.011  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **100,73 EU 
05.
0245C30070010300101112507656700000000000000005000 0000000000033333310227255700000000042126   Musterfrau, Maxi 
06.
Company Immergleich        LEV 10.09 NR.2222.2.0002.022  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **200,26 EU 
07.
0245C30070010300101112802372300000000000000005000 0000000000033333310227255700000000081390   Schmitz, HEINZ 
08.
Company Immergleich        LEV 10.09 NR.3333.3.0003.033  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **300,90 EU 
09.
0245C30070010300209000402600286000000000000005000 0000000000033333310227255700000000002500   Meier, JOERG 
10.
Company Immergleich        LEV 10.09 NR.4444.4.0004.044  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG ***25,00 EU 
11.
0245C30070010300209000602440214000000000000005000 0000000000033333310227255700000000060895   Müller, HEINZ-PETER
und hier dann der Output
01.
  
02.
0128ALK3333331000000000Company & Co Name          011009    02228899000000000000               03302009                         
03.
0245C30070010200411440001141878000000000000005000 0000000000033333310227255700000000060273   Mustermann, Max                     
04.
Company Immergleich        LEV 10.09 NR.1111.1.0001.011  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **100,73 EU            
05.
0245C30070010300101112507656700000000000000005000 0000000000033333310227255700000000042126   Musterfrau, Maxi                    
06.
Company Immergleich        LEV 10.09 NR.2222.2.0002.022  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **200,26 EU            
07.
0245C30070010300101112802372300000000000000005000 0000000000033333310227255700000000081390   Schmitz, HEINZ                      
08.
Company Immergleich        LEV 10.09 NR.3333.3.0003.033  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **300,90 EU            
09.
0245C30070010300209000402600286000000000000005000 0000000000033333310227255700000000002500   Meier, JOERG                        
10.
Company Immergleich        LEV 10.09 NR.4444.4.0004.044  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG ***25,00 EU            
11.
0245C30070010300209000602440214000000000000005000 0000000000033333310227255700000000060895   Müller, HEINZ-PETER                 
12.
Company Immergleich        LEV 10.09 NR.5555.5.0005.055  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **400,95 EU            
13.
0128E     0000005000000000000000000054921601951000000038869346630000004902348                                                    
14.
 
15.
Company Immergleich        LEV 10.09 NR.5555.5.0005.055  0202MIETSOLL OKTOBER 2009      02FÄLLIGER BETRAG **400,95 EU 
16.
0128E     0000005000000000000000000054921601951000000038869346630000004902348
Bitte warten ..
Mitglied: bastla
12.11.2009 um 13:59 Uhr
Hallo josken69!

Zunächst hatte ich das "&" in Verdacht - da aber bereits vor der Rückkonvertierung von "§" nach "^&" die Länge festgelegt wird, konnte es dann doch nicht daran liegen.

Dann fiel mir aber noch die "1" unmittelbar am Ende der ersten Zeile auf - und da ">>" nur eine Kurzform der Schreibweise "1>>" darstellt (Umleitung der Ausgabe auf Kanal 1 = STDOUT), gehe ich davon aus, dass diese 1 als Bestandteil eben dieser Umleitung interpretiert wurde.

Mit der folgenden Schreibweise der Zeile 12
>>"%NewFile%" Echo %lineOut%
sollte es dann eigentlich klappen ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
12.11.2009 um 14:19 Uhr
Moin bastla,

jepp, das dürfte es sein.
Für ganz Ängstliche könnte die Zeile 12 nochmal umgestaltet werden, um auch noch trailing blanks nach %lineout% auszuschliessen:

>>"%NewFile%" (Echo %lineOut%)
[natürlich ungetestet]

Grüße
Biber
Bitte warten ..
Mitglied: josken69
13.11.2009 um 08:13 Uhr
Hallo zusammen,
jep, das war's. Ich bedanke mich herzlich und wünsche eine schönes Wochenende.
Gruß Josh
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Oracle-- woher kommen die Einträge aus lsnrctl services
gelöst Frage von markNRWDatenbanken1 Kommentar

Hallo, es geht um Oracle 11g auf M$. "lsnrctl services" gibt mir folgendes aus: Nun, im Dienstnamen, hinter der ...

Batch & Shell
Powershell Formatierung Ausgabedatei
gelöst Frage von Cougar77Batch & Shell11 Kommentare

Guten Morgen, ich habe grade was, das ich nicht verstehe Folgende Anweisung: tut bei Ausführung in der PS ISE ...

PHP
Homepage nach PHP Update blank
Frage von ric2k17PHP4 Kommentare

Hallo, nach einem PHP Update ist unsere Seite blank. Der dortige Admin schrieb mir Folgendes: Ihre Webseite schient aber ...

Internet
MyStartsearch woher kam das und wie werde ich das los?
Frage von deinernstjetztInternet18 Kommentare

Hallo, ich habe seid einigen Tagen ein Problem mit meinem Webbrowsern. (Chrome, Internet Explorer) Ich habe als Startseite so ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...