Batchanpassung - andere Eingangsdatei
Hallo Ihr!
Was muss ich anpassen, damit die Eingangsdatei wie folgt aufgebaut sein kann?
Skript:
Ausgangsdatei wäre wie folgt:
Beste Grüße
Was muss ich anpassen, damit die Eingangsdatei wie folgt aufgebaut sein kann?
1500..2000,2500..4000
Skript:
@echo off &setlocal EnableDelayedExpansion
set "infile=test.txt"
set "outfile=test2.txt"
set "step=2000"
set "txt=150"
for /f "usebackq tokens=1,2 delims=." %%i in ("%infile%") do set /a "begin=%%i, end=%%j"
set "s=%txt%;%begin%.."
set /a "n=begin, begin+=step"
for /l %%i in (%begin% %step% %end%) do (
set /a "d=%%i-n, n=%%i-1"
set "s=!s!!n!;!d!;%txt%;%%i.."
set /a "n=%%i"
)
set /a "d=end-n+1"
if %n%==%end% (set "s=%s:~,-2%;%d%;") else set "s=%s%%end%;%d%;"
>"%outfile%" echo %s%
Ausgangsdatei wäre wie folgt:
150;1500..2000;501;150;2500..4000;1501;
Beste Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 486650
Url: https://administrator.de/contentid/486650
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Autoreifen? Birnen? Für eine für jeden verständliche Erklärung war wohl mal wieder keine Zeit?! "Mit Stahlkappen in die Kronjuwelen tret ..."
@echo off &setlocal EnableDelayedExpansion
set "infile=test.txt"
set "outfile=test2.txt"
set "step=2000"
set "txt=150"
for /f "usebackq tokens=1,2 delims=," %%a in ("%infile%") DO (
call :process "%%a"
call :process "%%b"
)
>"%outfile%" echo %final%
goto :eof
:process
for /f "tokens=1,2 delims=." %%i in ("%~1") do set /a "begin=%%i, end=%%j"
set "s=%txt%;%begin%.."
set /a "n=begin, begin+=step"
for /l %%i in (%begin% %step% %end%) do (
set /a "d=%%i-n, n=%%i-1"
set "s=!s!!n!;!d!;%txt%;%%i.."
set /a "n=%%i"
)
set /a "d=end-n+1"
if %n%==%end% (set "s=%s:~,-2%;%d%;") else set "s=%s%%end%;%d%;"
set "final=%final%%s%"
exit /b
Jap, trotzdem sollte man sich die Mühe geben, er will ja Hilfe nicht wir. Wenn man sich immer erst alles selbst zusammenreimen muss nur weil der TO zu faul ist mal einen Satz mehr zu schreiben ...