2017-06-22 3 views
0

ich folgend in einem Schläger SkriptWie kann ich eine for-Schleife in Bat schreiben und einen Befehl auf jeder Iteration

ich ein Array erstellen möchte erreichen möge auszuführen, in dem die Elemente durch Leerzeichen getrennt sind, für Beispiel:

array = host1 host2 host3 

Und eine for Schleife auf diesem Array läuft, wobei jedes Element als einen Parameter auf einen Befehl, beispielsweise übergeben wird: psexec //host1 cmd ebenfalls alle Servernamen als Argument übergeben werden sollen.

Wie kann ich das erreichen?

+1

Was haben Sie versucht, und wie hat was Sie haben versucht, fehlgeschlagen? Idealerweise sollten Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) über das, was Sie versucht haben, bereitstellen und spezifische Informationen dazu, wie es fehlgeschlagen ist, mit Fehlermeldungen und/oder fehlerhafte Ausgabe. SO ist kein Code-Schreibdienst; Die besten Fragen sind solche, die nützliche Informationen liefern, so dass diejenigen, die antworten, Sie bei der Ausarbeitung Ihrer eigenen richtigen Antwort unterstützen können. Siehe [So stellen Sie eine gute Frage] (https://stackoverflow.com/help/how-to-ask). –

+1

Ihre Daten sind kein _array_, sondern eine _list_. Weitere Details unter [diese Antwort] (https://stackoverflow.com/questions/17605767/create-list-or-arrays-in-windows-batch/17606350#17606350) – Aacini

Antwort

2

Sie können es mit einer Liste versuchen, wie unten:

@echo off 
set list=host1 host2 host3 
(for %%a in (%list%) do ( 
    ;dosomething with %%a; 
)) 

Bitte beachten Sie, wenn Sie die Liste setzen und stellen keine Leerzeichen vor und nach =

1
for %%a in (%array%) do echo %%a 

für den Einsatz direkt auf Kommandozeilen ersetzen jedes %%a mit %a.

+0

An der Stelle des Echos kann ich psexec Befehl schreiben und Echo es in eine TXT-Datei – ninja

+2

natürlich - warum nicht? Sie können mit '%% a' machen, was auch immer Sie wollen. – Stephan

Verwandte Themen