Batch - Leerzeilen beim auslesen mit for Schleife mitnehmen?
hallo,
gibt es eine Möglichkeit beim auslesen einer Datei per:
die in der Datei vorhanden Leerzeilen in eine anschließend zu schreibende Datei mitzunehmen? Die Ausgangsdatei enthält keine Leerzeichen.
bye martin
gibt es eine Möglichkeit beim auslesen einer Datei per:
for /F "tokens=*" %%a in ('type "%source%\aventail.pbk"') do (call :replace "%%a")
die in der Datei vorhanden Leerzeilen in eine anschließend zu schreibende Datei mitzunehmen? Die Ausgangsdatei enthält keine Leerzeichen.
bye martin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 73577
Url: https://administrator.de/contentid/73577
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
12 Kommentare
Neuester Kommentar
Moin mrt181,
habe schon in Deinem Vorgänger-Beitrag geantwortet.
...wobei es dann sein kann, dass Parameter1 der :replace-Subroutine so aussieht: ""
Du solltest also, wenn Du auch wieder eine Leerzeile AUSgeben willst, diesen Fall prüfen.
Grüße
Biber
habe schon in Deinem Vorgänger-Beitrag geantwortet.
for /F "tokens=2,*" %%a in ('findstr /n . "%source%\aventail.pbk"') do (call :replace "%%a")
...wobei es dann sein kann, dass Parameter1 der :replace-Subroutine so aussieht: ""
Du solltest also, wenn Du auch wieder eine Leerzeile AUSgeben willst, diesen Fall prüfen.
:replace
IF [%~1]== (
echo.>>%whereever%
goto :eof
)
>>%whatever% echo %~1
goto :eof
Grüße
Biber
hi hilft auch nicht weiter.
der output in der datei hat nach wie vor keine leerzeilen.
der output in der datei hat nach wie vor keine leerzeilen.
Bin ja auch blöd. Sorry.
STREICHE:
for /F "delims=: tokens=2*" %%a in ('findstr /n . "%source%\aventail.pbk"') do call :replace1 "%%a"
for /F "delims=: tokens=2*" %%a in ('findstr /n . "%source%\rasphone.pbk"') do call :replace2 "%%a"
for /F "delims=: tokens=1,2*" %%a in ('findstr /n . "%source%\aventail.pbk"') do call :replace1 "%%b"
for /F "delims=: tokens=1,2*" %%a in ('findstr /n . "%source%\rasphone.pbk"') do call :replace2 "%%b"
Und mach bitte BTW aus dem "goto :end2" jeweils ein "goto :eof".
Und erzähl nix von unserem Rumgeeiere hier weiter bitte...
Grüße
Biber
Moin mrt181,
das kann ich erklären und beseitigen.
Es sieht zwar mehrzeilig aus, aber für die CMD.exe ist das ganze "IF..(...) ELSE (....)" eine einzige Zeile.
In der dann auch die Variable %line% nur einen einzigen Wert hat.
Nämlich den, den zu Beginn dieser Zeile hatte.
Also bitte lass es uns auseinanderziehen.
Jetzt sind es auch für die CMD.exe mehrere Zeilen und somit kein Problem.
Und der String "url.de" sollte jetzt ersetzt werden.
Grüße
Biber
das kann ich erklären und beseitigen.
Es sieht zwar mehrzeilig aus, aber für die CMD.exe ist das ganze "IF..(...) ELSE (....)" eine einzige Zeile.
In der dann auch die Variable %line% nur einen einzigen Wert hat.
Nämlich den, den zu Beginn dieser Zeile hatte.
Also bitte lass es uns auseinanderziehen.
...
:sub_replace1
set "line=%~1"
if "%line%"=="" (
echo.>>"%source%\aventail_0.pbk"
goto :eof
)
set line=%line:url.de=199.199.199.199%
>>"%source%\aventail_0.pbk" echo %line%
goto :eof
Jetzt sind es auch für die CMD.exe mehrere Zeilen und somit kein Problem.
Und der String "url.de" sollte jetzt ersetzt werden.
Grüße
Biber
Moin mrt181,
ich hab es Dir noch ein bisschen eingedampft.
Weil es ja so furchtbar lange gedauert hat...
Schönes Wochenende
Biber
ich hab es Dir noch ein bisschen eingedampft.
Weil es ja so furchtbar lange gedauert hat...
::------snipp pbkCloner.bat
@echo off & setlocal
set "source=%allusersprofile%\Anwendungsdaten\Microsoft\Network\Connections\Pbk"
For %%i in (rasphone aventail) do call :CloneMirDiePbk "%source%\%%i.pbk" "%source%\%%i_0.pbk"
Goto :eof && REM oder "exit", wenn es sein muss
~~~~~~~~~~
:CloneMirDiePbk
:: sucht jedes beliebige Zeichen und übergibt an replace den zweiten, durch colon getrennten, Token bis Zeilenende
for /F "delims=: tokens=1,2*" %%a in ('findstr /n $ %1') do call :sub_replace "%%b" %2
move /Y %2 %1
goto :eof
~~~~~~~~
:sub_replace
set "line=%~1"
if "%line%"=="" (echo.>>%2) && goto :eof
>>%2 echo %line:url.de=199.199.199.199%
goto :eof
::----------- snapp pbkCloner.bat
Schönes Wochenende
Biber