dannyr21 Geschrieben 10. März 2009 Teilen Geschrieben 10. März 2009 (bearbeitet) Hallo Leute, mir viel gerade echt kein besser Titel ein, sorry. Ich hoffe Ihr könnt mir ein wenig weiterhelfen, ich stecke irgendwie gerade fest. Btw. ist nicht alles allein mein Code, ist von einigen Codeschnipseln. Also was ich bisher habe: Txt-Datei mit vorgegebenen Computernamen und neuen Computernamen. Inhalt der Txt-Datei: altercomputername,neuercomputername altercomputername2,neuercomputername2 Ich hätte es gerne so, dass er erst einen Ping abgibt an den alten Computernamen, ob der PC auch gerade online ist und dann den Computernamen ändert und halt in die Logdatei schreibt. Dann soll er natürlich auch weiter die 2. Zeile aus der txt-Datei abarbeiten und natürlich auch den Computernamen ändern usw. Wenn der Ping fehl schlägt soll er in die nächste Zeile der Txt-Datei gehen und da weiter machen. Hier mal mein bisheriger Code: :: Konfiguration setlocal set MachineFile=c:\testdatei.txt set logfile=c:\Logdatei.txt :datei :: Datei auslesen echo Datei %MachineFile% auslesen .... for /f "tokens=1,2 delims=," %%a in ('type "%MachineFile%"') do ( set OldName=%%~a set NewName=%%~b set passworddc=passwort set user=domaine\administrator ) call :ping %OldName% %NewName% :netdom echo Computer %OldName% umbenennnen in %NewName% ... NETDOM RENAMECOMPUTER %OldName% /newname:%NewName% /userd:%user% /passwordd:%passworddc% /usero:%user% /passwordo:%passworddc% /force IF Errorlevel 1 ( call :Renamefailed %OldName% %NewName% ) IF Errorlevel 0 ( :: Umbenennung erfolgreich, in Logdatei protokollieren echo Computer %OldName% erfolgreich in %NewName% umbenannt. echo %date% %time% umbenennen %OldName% in %NewName% erfolgreich >> %logfile% exit ) :ping :: Warten auf Pingreaktion echo ping Computer %OldName% ... ping -n 3 %OldName% If Errorlevel 1 call :pingfailed %OldName% %NewName% call :netdom %OldName% %NewName% :pingfailed echo Ping fehlgeschlagen .... echo. echo %date% %time% Computer %NewName% NICHT erreichbar! >> %logfile% echo Computer %NewName% NICHT erreichbar! echo Siehe %logfile% echo. echo. pause exit :Renamefailed echo Umbenennen fehlgeschlagen .... echo. echo. echo %date% %time% umbenennen %OldName% in %NewName% ist fehlgeschlagen! >> %logfile% echo Computer Umbenennung %OldName% in %NewName% ist fehlgeschlagen! echo siehe %logfile% echo. echo. pause exit Gruß Danny Bearbeitet 10. März 2009 von dannyr21 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 10. März 2009 Teilen Geschrieben 10. März 2009 Sollen wir die Batch für dich testen? Wo hast du denn ein Problem mit der Batch Datei? Gruss, tester2k5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dannyr21 Geschrieben 11. März 2009 Autor Teilen Geschrieben 11. März 2009 Hi, also 1. führt er das Script zwar aus aber nur für die 1. Zeile und dann nicht für die anderen Zeilen. Und, wenn er den Computer anpingt und er nicht erreichbar ist, soll er in die nächste Zeile von der Txt-Datei gehen und da weiter machen und nicht einfach aufhören > das macht er bisher nicht, er wiederholt und wiederholt die 1. Zeile. Dachte vielleicht einige könnten mal kurz drüberschauen ob das logisch so funktionieren könnte und wenn nicht, wie ich da was dran ändern könnte, dass es meinen Wünschen entspräche. Danke schon mal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 12. März 2009 Teilen Geschrieben 12. März 2009 Ich habe schon im ersten Abschnitt ": Datei" die Variable %OLDNAME% nicht mit "ECHO" ausgeben können... Und die Batch kurzerhand zusammengestrichen: CLS @ECHO OFF TITLE=Rename Comuter :: Konfiguration SET USER=Administrator SET PASSWORD=GEHEIM SET LOGFILE=Logdatei.txt SET MACHINEFILE=Testdatei.txt ECHO. ECHO Starte Rename Computer... > %LOGFILE% ECHO %DATE% %TIME% Starte Rename Computer... FOR /F "Tokens=1,2 Delims=," %%i IN (%MACHINEFILE%) DO ( ECHO. ECHO Ping Computer %%i... PING -n 1 %%i | FIND "TTL">NUL IF ERRORLEVEL 1 ( ECHO FEHLER! Computer %%i ist NICHT erreichbar! Siehe %LOGFILE% >> %LOGFILE% ECHO. >> %LOGFILE% ECHO %DATE% %TIME% Computer %%i ist NICHT erreichbar! ) ELSE IF ERRORLEVEL 0 ( ECHO Starte Computer umbenennnen von %%i in %%j... >> %LOGFILE% ECHO. >> %LOGFILE% ECHO %DATE% %TIME% Computer %%i ist erreichbar. >> %LOGFILE% ECHO %DATE% %TIME% Starte Computer umbenennnen von %%i in %%j... PING -n 1 127.0.0.1 | FIND "TTL">NUL >> %LOGFILE% ECHO NETDOM RENAMECOMPUTER %%i /NEWNAME:%%j /userd:%USER% /passwordd:%PASSWORD% /usero:%USER% /passwordo:%PASSWORD% /force IF Errorlevel 1 ( ECHO. ECHO Computer Umbenennung von %%i in %%j ist fehlgeschlagen! Siehe %LOGFILE% >> %LOGFILE% ECHO %DATE% %TIME% Umbenennen von %%i in %%j ist fehlgeschlagen! ) ELSE IF Errorlevel 0 ( ECHO Computer %%i erfolgreich in %%j umbenannt. >> %LOGFILE% ECHO %DATE% %TIME% umbenennen von %%i in %%j erfolgreich. ) ) ) ECHO. ECHO Batch Ende. >> %LOGFILE% ECHO. >> %LOGFILE% ECHO %DATE% %TIME% Ende. PAUSE START Notepad %LOGFILE% EXIT Du musst noch den 2. PING-Befehl PING -n 1 127.0.0.1 | FIND "TTL">NUL und >> %LOGFILE% ECHO vor NETDOM RENAMECOMPUTER %%i /NEWNAME:%%j /userd:%USER% /passwordd:%PASSWORD% /usero:%USER% /passwordo:%PASSWORD% /force rauslöschen. Gruss, tester2k5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dannyr21 Geschrieben 12. März 2009 Autor Teilen Geschrieben 12. März 2009 (bearbeitet) Hi, Vielen Dank für dein Script(Änderungen). Hätte fast geklappt, musste noch was am Code ändern. Meine Änderung war: FOR /F "Tokens=1,2 Delims=," %%i IN ('type %MACHINEFILE%') DO ( ohne dieses 'type %MachineFile%' ging es nicht, mit aber schon . Vielen Dank noch mal tester2k5 Bearbeitet 12. März 2009 von dannyr21 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.