sunshine1907
Goto Top

Auslesen einer txt-Datei mit Verarbeitung in Batch (cmd)

Hallo zusammen.

Ich bin neu hier und habe schon öfter dieses Forum als Hilfe benutzt.
Nur leider finde ich keine Antwort (oder bin zu blind es zu finden) auf folgende Frage.

Ich habe eine txt-Datei mit als Beispiel 50 Pcs
Diese Txt-Datei (NetworkPC.txt) enthält einfach nur Einträge wie:

PCname1
PCname2
PCname3
...
...
PCname50

usw..

Nun möchte ich aber mit einem BatchJob folgende Möglichkeit erstellen.
Von jedem der PCs soll nach Aufruf der Batchdatei ein Snapshot gemacht werden, der dann per Psexec gestartet wird. Den Job per Psexec habe ich bisher auch einwandfrei am laufen, das ist nicht das Problem. Nur bisher habe ich in einer Batchdatei für JEDEN einzelnen PC diese Befehlsfolge.
Nur ist es echt lästig Änderungen an den PCs (wenn einer dazu kommt oder einer wegfällt) in dieser Batchdatei zu ändern.
Sinnvoller und besser, bzw. prof. wäre es, wenn ich alle PCs einfach in dieser txt-Datei verwalte und mit einem Batchbefehl for /f ......... die Textdatei auslese und demnach jeweils PC für PC abgearbeitet wird.

Wie muss der Befehl genau heißen ??

Ich danke vielmals über jede Antwort.

Content-Key: 189971

Url: https://administrator.de/contentid/189971

Ausgedruckt am: 29.03.2024 um 09:03 Uhr

Mitglied: bastla
bastla 22.08.2012 um 11:13:33 Uhr
Goto Top
Hallo sunshine1907 und willkommen im Forum!

Im Tutorial zur FOR-Schleife erfährst Du alles, was Du für Dein Vorhaben brauchst (und eine Menge mehr face-wink) ...

Grüße
bastla
Mitglied: sunshine1907
sunshine1907 23.08.2012, aktualisiert am 26.08.2012 um 17:33:19 Uhr
Goto Top
Hallo zusammen,

danke erstmal für die Antwort. Habe mich auch soweit durchgekämpft. Klappt soweit nun auch wie gewünscht.
Ich habe jedoch noch folgendes Problem, was ich definitiv nicht hinbekomme, jedoch gerne mit eurer Hilfe lösen möchte.
In dem Script holt er sich aus der Textdatei den jeweiligen PC und arbeitet ihn ab, in diesem Fall nun ein xcopy.
Jedoch möchte ich noch die Option einbauen, dass wenn ein PC offline sein sollte direkt zum nächsten gesprungen wird und der Offline-PC entsprechend im Log auftaucht, damit man den oder die Offline-PC nachträglich abarbeiten kann, jedoch z.B. die anderen 80PCs ihren copy-Befehl mitgemacht haben.

Im Script weiß ich nicht wie ich das behandeln soll, dass bei einem Error = keine Antwort = PC offline sofort der nächste in Angriff genommen wird, anstatt gleich das ganze Script abzubrechen.
@echo off
for /f %%i in (%temp%\computerlist.txt) do ( 
	echo %%i >>%temp%\copylog.txt
	Ping %%1 -n 2 | find "Reply" >>%temp%\copylog.txt  
	if %errorlevel%==1 ?????????
	xcopy /y "%source1%" "\\%%i\%destin%" >>%temp%\copylog.txt  
     	
)

[Edit Biber] Codeformatierung und grünes Häkchen nachgetragen 26.08.2012. [/Edit]
Mitglied: bastla
bastla 23.08.2012 um 11:03:31 Uhr
Goto Top
Hallo shunshine1907!

Darf ich Dir für das Posten von "Code" die passende Formatierung (lässt sich auch nachträglich hinzufügen face-wink) nahelegen?
@echo off & setlocal
for /f %%i in (%temp%\computerlist.txt) do (
    echo %%i >>%temp%\copylog.txt
    Ping %%1 -n 2 | find "Reply">nul && (  
        xcopy /y "%source1%" "\\%%i\%destin%" >>%temp%\copylog.txt  
    ) || (
        echo %%i >>%temp%\offline.txt
    )
)
Grüße
bastla
Mitglied: sunshine1907
sunshine1907 24.08.2012 um 06:03:00 Uhr
Goto Top
@bastla.

Was soll ich sagen: PERFEKT!!. Vielen Dank. Klappt alles wunderbar, so wollte ich es haben.