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
Please also mark the comments that contributed to the solution of the article
Content-Key: 486650
Url: https://administrator.de/contentid/486650
Printed on: April 24, 2024 at 20:04 o'clock
4 Comments
Latest comment
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 ...