PCs umbenennen mit For-Schleife und netdom
Hallo zusammen,
ich habe folgenden Batch-Schnipsel:
Es soll so funktionieren:
1. Eine Datei mit Inhalt alte und neue PC-Namen wird eingelesen
2. Mittels netdom.exe wird der erste PC umbenannt, dann der zweitem, dann der dritte...
3. Danach wird abgefragt, ob eine weitere Liste eingelesen werden soll
Die Datei PC-Liste.txt sieht so auf:
PC1 PC1-neu
PC2 PC2-neu
PC3 PC3-neu
...
Leider klappt das immer nur beim ersten Durchlauf. Was mache ich hier falsch???
Danke für euer Feedback
Gruß
Larz
ich habe folgenden Batch-Schnipsel:
:Start
@ECHO =======================================================
@ECHO Dateiname der PC-Liste angeben:
set /p Datei=
@ECHO.
@ECHO Datei %Datei% auslesen ....
For /F "tokens=1,2* " %%i in (%Datei%) do call :DoAction %%i %%j
goto ActionEnd
:DoAction
netdom renamecomputer %1 /newname:%2 /userd:Domäne\Admin /PasswordD:* /force /reboot:10
@ECHO =======================================================
:ActionEnd
GOTO Abfrage_nochmal
:Abfrage_nochmal
@ECHO M”chten Sie weitere PCs umbenennen (J/N)?
set /p Entscheidung=
if '%Entscheidung%' == 'j' goto Start
Es soll so funktionieren:
1. Eine Datei mit Inhalt alte und neue PC-Namen wird eingelesen
2. Mittels netdom.exe wird der erste PC umbenannt, dann der zweitem, dann der dritte...
3. Danach wird abgefragt, ob eine weitere Liste eingelesen werden soll
Die Datei PC-Liste.txt sieht so auf:
PC1 PC1-neu
PC2 PC2-neu
PC3 PC3-neu
...
Leider klappt das immer nur beim ersten Durchlauf. Was mache ich hier falsch???
Danke für euer Feedback
Gruß
Larz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125540
Url: https://administrator.de/forum/pcs-umbenennen-mit-for-schleife-und-netdom-125540.html
Ausgedruckt am: 04.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo Larz!
Versuch es mit einer Zeile 13
oder verzichte auf "call" und schreibe die Schleife etwa so:
Grüße
bastla
Versuch es mit einer Zeile 13
goto :eof
For /F "tokens=1*" %%i in (%Datei%) do (
netdom renamecomputer %%i /newname:%%j /userd:Domäne\Admin /PasswordD:* /force /reboot:10
@ECHO =======================================================
)
bastla

Hallo,
etwas Senf habe ich auch noch beizusteuern:
set /P verträgt auch einen zusätzlichen Text, du kannst dir also die Echo-Zeile vorher sparen:
oder
etwas Senf habe ich auch noch beizusteuern:
set /P verträgt auch einen zusätzlichen Text, du kannst dir also die Echo-Zeile vorher sparen:
set /p Datei=Dateiname der PC-Liste angeben
set /p Entscheidung=M”chten Sie weitere PCs umbenennen (J/N)?
Hallo Larz!
Grüße
bastla
Was mach denn :eof? Kann dasübersetzt werden mit "End-Of-Function"? "End-Of-File" ist es ja eigentlich nicht...
Es wird durch die Anweisung "goto :eof" ein Sprung an das Ende der Datei (= des Batches) simuliert - wird der Befehl im "Hauptprogramm" (wie in diesem Fall) verwendet, beendet er den Batch; setzt Du ihn an das Ende eines per "call" aufgerufenen Unterprogrammes, wird damit dieser "Unter-Batch" ebenfalls beendet und es geht im "Hauptprogramm" mit der nächsten Anweisung weiter - insofern entspricht er dann einem "Return" eines klassischen Basic ...Grüße
bastla