verschachtelte .bat nur einmal aufrufbar?
Hallo!
Ich bin gerade dabei, ein Skript zu basteln, welche mir mittels batch-Dateien das Umbenennen von Dateien erleichtern soll. Als Ausgangsmaterial habe ich zwei Dateilisten (.txt), welche den Vorher- und Nachher-Namen enthalten. Das Skript soll mir in eine neue Datei den Befehl "ren Vorher Nachher" reinschreiben, wobei die Namen aus gleichen Zeilen kommen sollten. Dies hab ich im Großen und Ganzen schon geschafft, jedoch habe ich das Problem, dass ich die batch Datei, welche das macht (und der als Variable die Zeilennummer übergeben wird) nur einmal aufgerufen werden kann.
Hier der Code:
Aufgerufen wir das Ganze folgendermaßen:
createlist.bat 34
Wobei 34 für die beiden Einträge aus den Zeilen, die verknüpft werden sollen, steht. So ein einzelner Aufruf funktioniert tadellos.
Ich möchte das jedoch nicht nur mit einer Zeile machen, sondern mit allen 96.
Eine Schleife (z.b. in einer anderen Datei) bietet sich an, oder eine einfache Aneinanderreihung:
createlist.bat 1
createlist.bat 2
createlist.bat 3
usw.
Das Problem ist nun, dass immer nach dem Ersten Durchlauf abgebrochen wird (egal ob mit Schleife oder so)... Wenn ich die Befehle händisch hintereinander eingebe, funktioniert es auch...
Warum ist das so? bzw. Was muss ich ändern, damits funktioniert???
Liebe Grüße aus Österreich,
Ewald
Ich bin gerade dabei, ein Skript zu basteln, welche mir mittels batch-Dateien das Umbenennen von Dateien erleichtern soll. Als Ausgangsmaterial habe ich zwei Dateilisten (.txt), welche den Vorher- und Nachher-Namen enthalten. Das Skript soll mir in eine neue Datei den Befehl "ren Vorher Nachher" reinschreiben, wobei die Namen aus gleichen Zeilen kommen sollten. Dies hab ich im Großen und Ganzen schon geschafft, jedoch habe ich das Problem, dass ich die batch Datei, welche das macht (und der als Variable die Zeilennummer übergeben wird) nur einmal aufgerufen werden kann.
Hier der Code:
@echo off & setlocal
set filelist=filelist.txt
set genelist=genelist.txt
set /a count=1
set /a countr=1
set /a linenbr=%1
set /a lastline=10
FOR /f %%a IN (%filelist%) do set line=%%a & call :counter
Goto :next
:counter
if %count%==%linenbr% set file=%line%
set /a count+=1
goto :eof
:next
FOR /f %%b IN (%genelist%) do set line2=%%b & call :counter2
Goto :next2
:counter2
if %countr%==%linenbr% set gene=%line2%
set /a countr+=1
goto :eof
:next2
echo ren %file% %gene% >> rename.bat
Aufgerufen wir das Ganze folgendermaßen:
createlist.bat 34
Wobei 34 für die beiden Einträge aus den Zeilen, die verknüpft werden sollen, steht. So ein einzelner Aufruf funktioniert tadellos.
Ich möchte das jedoch nicht nur mit einer Zeile machen, sondern mit allen 96.
Eine Schleife (z.b. in einer anderen Datei) bietet sich an, oder eine einfache Aneinanderreihung:
createlist.bat 1
createlist.bat 2
createlist.bat 3
usw.
Das Problem ist nun, dass immer nach dem Ersten Durchlauf abgebrochen wird (egal ob mit Schleife oder so)... Wenn ich die Befehle händisch hintereinander eingebe, funktioniert es auch...
Warum ist das so? bzw. Was muss ich ändern, damits funktioniert???
Liebe Grüße aus Österreich,
Ewald
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89549
Url: https://administrator.de/forum/verschachtelte-bat-nur-einmal-aufrufbar-89549.html
Ausgedruckt am: 14.05.2025 um 11:05 Uhr
3 Kommentare
Neuester Kommentar

Hi,
hast du schon mal folgendes Probiert
Tryout.cmd
So wartet die startende batch solange mit dem starten der Createlsit - bis der vorherige Lauf abgearbeitet ist.
hast du schon mal folgendes Probiert
Tryout.cmd
Start /wait createlist.bat 1
Start /wait createlist.bat 2
Start /wait createlist.bat 3
So wartet die startende batch solange mit dem starten der Createlsit - bis der vorherige Lauf abgearbeitet ist.