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

Printed on: April 19, 2024 at 00:04 o'clock

Member: bastla
bastla Aug 22, 2012 at 09:13:33 (UTC)
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
Member: sunshine1907
sunshine1907 Aug 23, 2012, updated at Aug 26, 2012 at 15:33:19 (UTC)
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]
Member: bastla
bastla Aug 23, 2012 at 09:03:31 (UTC)
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
Member: sunshine1907
sunshine1907 Aug 24, 2012 at 04:03:00 (UTC)
Goto Top
@bastla.

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