Zahl hinter immer gleichem Wort plus 1 rechnen (linear wachsend) - per Batch
Noch eine Frage ;)
Habe eine .txt in der viele Zahlen und Buchstaben in jeder Zeile stehen, jedoch steht in jeder 5. Zeile (ab der 2. Zeile also in Zeile 2, 7, 12, 17 u.s.w.) immer das gleiche Wort (CONTENT) gefolgt von einem Gleichheitszeichen und einer immer gleichen Zahl (=X). Jetzt möchte ich, dass immer X also die Zahl plus eins gerechnet wird, jedoch linear wachsend, damit danach nicht wieder überall die gleiche Zahl steht sondern sich diese immer um eins erhöht. Ich denke durch das Beispiel wird es verständlich ;)
Eingabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
Ausgabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=105
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=106
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=107
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=108
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
Habe eine .txt in der viele Zahlen und Buchstaben in jeder Zeile stehen, jedoch steht in jeder 5. Zeile (ab der 2. Zeile also in Zeile 2, 7, 12, 17 u.s.w.) immer das gleiche Wort (CONTENT) gefolgt von einem Gleichheitszeichen und einer immer gleichen Zahl (=X). Jetzt möchte ich, dass immer X also die Zahl plus eins gerechnet wird, jedoch linear wachsend, damit danach nicht wieder überall die gleiche Zahl steht sondern sich diese immer um eins erhöht. Ich denke durch das Beispiel wird es verständlich ;)
Eingabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
Ausgabe.txt
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=104
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=105
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=106
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=107
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
TAG POS=1 TYPE=TD ATTR=ID:label_addAddressButton
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_keyword CONTENT=108
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_from CONTENT=a
TAG POS=1 TYPE=TEXTAREA FORM=ACTION:/y5/d/cgoptions ATTR=ID:adddea_notes CONTENT=a
TAG POS=2 TYPE=BUTTON ATTR=TXT:Speichern
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154051
Url: https://administrator.de/forum/zahl-hinter-immer-gleichem-wort-plus-1-rechnen-linear-wachsend-per-batch-154051.html
Ausgedruckt am: 04.05.2025 um 06:05 Uhr
2 Kommentare
Neuester Kommentar
Hallo xtbodx!
Soferne der Startwert bekannt und die Stellenanzahl der hochzuzählenden Nummer immer 3 ist könnte das so gehen:
Anmerkung: Aus Gründen der Genauigkeit wird immer das Zeilenende untersucht (es darf daher auf "CONTENT=104" zB kein Leerzeichen mehr folgen), da ja die letzten 3 Zeichen ersetzt werden sollen. Auch wird bei der Überprüfung auf denn Kennzeichen-String Groß-/Kleinschreibung beachtet - wenn das nicht gewünscht sein sollte, müsste "
Grüße
bastla
Soferne der Startwert bekannt und die Stellenanzahl der hochzuzählenden Nummer immer 3 ist könnte das so gehen:
@echo off & setlocal
set "Ein=D:\Eingabe.txt"
set "Aus=D:\Ausgabe.txt"
set "Kenn=CONTENT=104"
set /a Nr=104
del "%Aus%" 2>nul
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine
goto :eof
:ProcessLine
echo %Zeile%|findstr /e "%Kenn%">nul||(>>"%Aus%" echo %Zeile% & goto :eof)
>>"%Aus%" echo %Zeile:~,-3%%Nr%
set /a Nr+=1
goto :eof
findstr
" zusätzlich den Schalter "/i
" erhalten ...Grüße
bastla
Hallo xtbodx und bastla.
Ein anderer Ansatz wäre, die Abfolge als Grundlage zu nehmen. 6. Token (mit "=" als Delimiter) in der 2. Zeile ist die Startnummer, Jede 5. Zeile ab der 2. wird verändert.
Grüße
rubberman
Ein anderer Ansatz wäre, die Abfolge als Grundlage zu nehmen. 6. Token (mit "=" als Delimiter) in der 2. Zeile ist die Startnummer, Jede 5. Zeile ab der 2. wird verändert.
@echo off &setlocal
>"Ausgabe.txt" type nul
for /f "tokens=1* delims=:" %%a in ('findstr /n . "Eingabe.txt"') do (
set /a n=%%a-2
set "line=%%b"
call :procLine
)
pause
goto :eof
:procLine
setlocal enabledelayedexpansion
if "%n%"=="0" (
for /f "tokens=6 delims==" %%a in ("!line!") do set /a X=%%a-1
)
set /a n%%=5
if "%n%"=="0" (
for /f "tokens=1-5 delims==" %%a in ("!line!") do (
set /a X+=1
set "line=%%a=%%b=%%c=%%d=%%e=!X!"
)
)
>>"Ausgabe.txt" echo\!line!
endlocal &set "X=%X%"
goto :eof
Grüße
rubberman