Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PCs umbenennen mit For-Schleife und netdom

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

22.09.2009 um 16:45 Uhr, 3653 Aufrufe, 5 Kommentare

Hallo zusammen,

ich habe folgenden Batch-Schnipsel:

01.
:Start 
02.
@ECHO ======================================================= 
03.
@ECHO Dateiname der PC-Liste angeben: 
04.
set /p Datei= 
05.
@ECHO. 
06.
@ECHO Datei %Datei% auslesen .... 
07.
For /F "tokens=1,2* " %%i in (%Datei%) do call :DoAction %%i %%j 
08.
goto ActionEnd 
09.
 
10.
:DoAction 
11.
netdom renamecomputer %1 /newname:%2 /userd:Domäne\Admin /PasswordD:* /force /reboot:10 
12.
@ECHO ======================================================= 
13.
 
14.
:ActionEnd 
15.
GOTO Abfrage_nochmal 
16.
 
17.
:Abfrage_nochmal 
18.
@ECHO M”chten Sie weitere PCs umbenennen (J/N)? 
19.
set /p Entscheidung= 
20.
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
Mitglied: bastla
22.09.2009 um 17:02 Uhr
Hallo Larz!

Versuch es mit einer Zeile 13
goto :eof
oder verzichte auf "call" und schreibe die Schleife etwa so:
01.
For /F "tokens=1*" %%i in (%Datei%) do ( 
02.
    netdom renamecomputer %%i /newname:%%j /userd:Domäne\Admin /PasswordD:* /force /reboot:10 
03.
@ECHO ======================================================= 
04.
)
Grüße
bastla
Bitte warten ..
Mitglied: 81825
22.09.2009 um 17:09 Uhr
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:
01.
set /p Datei=Dateiname der PC-Liste angeben   
oder
01.
set /p Entscheidung=M”chten Sie weitere PCs umbenennen (J/N)? 
Bitte warten ..
Mitglied: Larz
24.09.2009 um 08:34 Uhr
Danke für die Info, habe ich noch nicht gewusst...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
24.09.2009 um 08:36 Uhr
Servus bastla,

Du bist schon oft die Lösung meiner (Batch-)Probleme gewesen, wie jetzt auch hier
Was mach denn :eof? Kann dasübersetzt werden mit "End-Of-Function"? "End-Of-File" ist es ja eigentlich nicht...

Gruß
Larz
Bitte warten ..
Mitglied: bastla
24.09.2009 um 14:27 Uhr
Hallo Larz!
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
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife kaputt? (5)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...