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