Leerzeichen am Zeilenende vermeiden
Hallo,
mit dem u.a. Batch (Auszug) erzeuge ich aus einer Access-Datenbank heraus die u.a. Datensätze. Leider wird hinter jedem Datensatz gleichzeitig auch ein Leerzeichen erzeugt.
Woran liegt das bzw. wie lässt sich das vermeiden?
echo off & setlocal
if exist "%1\HRM\%2.xml" del "%1\HRM\%2.xml" > nul
set "HRM=%1\HRM\HRM.txt"
set "ExportHRM=%1\HRM\%2.hrm"
set "ExportHRM2=%1\HRM\%2_.hrm"
echo [Params] >%ExportHRM%
echo Version=106 >>%ExportHRM%
echo Monitor=12 >>%ExportHRM%
echo SMode=110000100 >>%ExportHRM%
for /f "tokens=7 delims=;" %%a in (%HRM%) do echo Weight=%%a >>%ExportHRM%
echo. >>%ExportHRM%
echo [Note] >>%ExportHRM%
echo. >>%ExportHRM%
echo [IntTimes] >>%ExportHRM%
for /f "tokens=11 delims=;" %%a in (%HRM%) do echo %%a >>%ExportHRM%
Beispieldaten:
[Params]
Version=106
Monitor=12
SMode=110000100
Weight=70
[Note]
[IntTimes]
01:12:07.0 125 128 145 163
Mit dem folgenden Batch habe ich dann die Leerzeichen entfernt. Das hat zwar funktioniert, führt allerdings dann dazu, dass in den Leerzeilen die Meldung: "ECHO ist ausgeschaltet (OFF)." erscheint.
for /f "delims=" %%i in (%ExportHRM%) do @call :trim %%i
goto :eof
:trim
goto :eof
_____________________________________________________
[Params]
Version=106
Monitor=12
SMode=110000100
Weight=70
ECHO ist ausgeschaltet (OFF).
[Note]
ECHO ist ausgeschaltet (OFF).
[IntTimes]
01:12:07.0 125 128 145 163
_____________________________________________________
Gruß
Markus
mit dem u.a. Batch (Auszug) erzeuge ich aus einer Access-Datenbank heraus die u.a. Datensätze. Leider wird hinter jedem Datensatz gleichzeitig auch ein Leerzeichen erzeugt.
Woran liegt das bzw. wie lässt sich das vermeiden?
echo off & setlocal
if exist "%1\HRM\%2.xml" del "%1\HRM\%2.xml" > nul
set "HRM=%1\HRM\HRM.txt"
set "ExportHRM=%1\HRM\%2.hrm"
set "ExportHRM2=%1\HRM\%2_.hrm"
echo [Params] >%ExportHRM%
echo Version=106 >>%ExportHRM%
echo Monitor=12 >>%ExportHRM%
echo SMode=110000100 >>%ExportHRM%
for /f "tokens=7 delims=;" %%a in (%HRM%) do echo Weight=%%a >>%ExportHRM%
echo. >>%ExportHRM%
echo [Note] >>%ExportHRM%
echo. >>%ExportHRM%
echo [IntTimes] >>%ExportHRM%
for /f "tokens=11 delims=;" %%a in (%HRM%) do echo %%a >>%ExportHRM%
Beispieldaten:
[Params]
Version=106
Monitor=12
SMode=110000100
Weight=70
[Note]
[IntTimes]
01:12:07.0 125 128 145 163
Mit dem folgenden Batch habe ich dann die Leerzeichen entfernt. Das hat zwar funktioniert, führt allerdings dann dazu, dass in den Leerzeilen die Meldung: "ECHO ist ausgeschaltet (OFF)." erscheint.
for /f "delims=" %%i in (%ExportHRM%) do @call :trim %%i
goto :eof
:trim
%ExportHRM2% echo %*
_____________________________________________________
[Params]
Version=106
Monitor=12
SMode=110000100
Weight=70
ECHO ist ausgeschaltet (OFF).
[Note]
ECHO ist ausgeschaltet (OFF).
[IntTimes]
01:12:07.0 125 128 145 163
_____________________________________________________
Gruß
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 341766
Url: https://administrator.de/contentid/341766
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Kein Wunder wenn du vor den Redirectors überall ein Leerzeichen einfügst
_>>%ExportHRM%
Deswegen als best practice immer den Redirect am Anfang der Zeile machen.
Batch und Access, wuahhh da läuft einem ein Schauer über den Rücken .
Gruß
_>>%ExportHRM%
Deswegen als best practice immer den Redirect am Anfang der Zeile machen.
>>%ExportHRM% echo( BlaBlaBlaBla
Batch und Access, wuahhh da läuft einem ein Schauer über den Rücken .
Gruß
hallo,
indem Du Deinen Batchcode vielleicht so umstellst:
D.h. die Ausgabe am Anfang.
Gruss Penny
indem Du Deinen Batchcode vielleicht so umstellst:
>%ExportHRM% echo [Params]
>>%ExportHRM% echo Version=106
>>%ExportHRM% echo Monitor=12
>>%ExportHRM% echo SMode=110000100
>>%ExportHRM% for /f "tokens=7 delims=;" %%a in (%HRM%) do echo Weight=%%a
>>%ExportHRM% echo.
>>%ExportHRM% echo [Note]
echo.>>%ExportHRM%
>>%ExportHRM% echo [IntTimes]
>>%ExportHRM% for /f "tokens=11 delims=;" %%a in (%HRM%) do echo %%a
D.h. die Ausgabe am Anfang.
Gruss Penny
Da gehören Klammern um die Schleife:
>>"%ExportHRM%" (for /f "tokens=1 delims=;" %%a in (%HRM%) do echo(Weight=%%a)