it-swarm.com.de

So rufen Sie eine Batchdatei nach der anderen auf

Ich habe eine Batch-Datei, die ich teste. Alles, was ich tun möchte, ist folgendes

CALL ping.bat

Nachdem diese Batchdatei ausgeführt wurde, möchte ich eine weitere Datei ausführen:

CALL ping2.bat

Im Moment habe ich diese beiden Zeilen nebeneinander in einer Batchdatei. Die erste Batchdatei wird erfolgreich ausgelöst, die zweite jedoch nicht. Irgendwelche Vorschläge?

CALL ping.bat
CALL ping2.bat

Ping .bat ist nur:

ping 127.0.0.1    
28
Wii

Vergewissern Sie sich, dass Sie im ersten Stapel nicht exit haben. Einige Leute verwenden das normalerweise, um aus einer Batchdatei zu springen, was nicht der richtige Weg ist, um einen Batch zu beenden (exit /b oder goto :eof is).

Eine andere Option ist, dass Sie möglicherweise einen anderen Stapel im ersten ohne call aufrufen.

18
Joey

Es besteht die Möglichkeit, dass Ihr ping.bat sich einfach selbst aufruft, wenn sein Inhalt nur ping 127.0.0.1 ist, wie Sie sagen.

Ich würde .exe nach ping anhängen, um die Dinge sicher zu stellen.

Wie jeb auf jeden Fall zu Recht vorgeschlagen hat, ist die Wahl eines anderen Namens für Ihre Batchdatei eine noch bessere Lösung.

6
Andriy M

Angenommen, Sie haben 3 Batchdateien. 

  1. ping1.bat mit dem Inhalt ping 127.0.0.1 
  2. ping2.bat mit dem Inhalt ping 127.0.0.1 
  3. ping3.bat, das die beiden unteren Zeilen hat
    rufen Sie ping1.bat auf
    ping2.bat aufrufen 

Wenn Sie alle drei Stapeldateien in einem einzigen Ordner haben (sagen wir unter C:\NewFolder).... Wenn Sie auf ping3.bat doppelklicken, erhalten Sie mit Sicherheit keinen Fehler.

Hinweis: Wenn Sie nicht warten möchten, bis der erste Befehl abgeschlossen ist, verwenden Sie das Schlüsselwort start, das den Vorgang einleitet, und fahren Sie mit der nächsten Zeile in der Batchdatei fort, wohingegen der Aufruf Zeile erst nach Abschluss des aktuellen Prozesses, Start ermöglicht Parallelität)
Um dies parallel durchzuführen, verwenden Sie die beiden folgenden Codezeilen in ping3.bat: 

starten Sie ping1.bat
Starten Sie ping2.bat 

5
knkarthick24

rufen Sie die Datei, die Sie aus dem Stapel aufrufen, nicht denselben Namen wie der Befehl auf, den Sie aufrufen möchten ... Umbenannt in gnip.bat und funktioniert einwandfrei

2
Wii

Ich weiß nicht genau, was Sie hier machen wollten, aber ich gehe davon aus, dass Sie Folgendes tun wollten:

  1. starte FIRST.bat
  2. von FIRST.bat aus möchten Sie SECOND.bat anrufen
  3. Während der Ausführung von SECOND.bat sollte FIRST.bat angehalten bleiben
  4. Nachdem die Ausführung von SECOND.bat abgeschlossen ist, sollte FIRST.bat fortgesetzt und THIRD.bat aufgerufen werden

In diesem Fall sollten Sie in Ihrer aktuellen Batchdatei ping.bat und ping2.bat wie folgt starten:

::some code here
start /wait ping.bat
start /wait ping2.bat
::some code here

In ping.bat und ping2.bat sollte die letzte Zeile exit sein. Ihr Code sollte so aussehen:

::some code here, might be ping 127.0.0.1
exit

Jetzt startet Ihre aktuelle Batchdatei ping.bat und wartet, bis sie beendet ist (exit). Nach dem Schließen von ping.bat wird Ihre aktuelle Stapeldatei in die nächste Zeile verschoben und ping2.bat usw. gestartet.

2
Goran Vasic

Der Ping-Befehl wirkt auf verschiedene Betriebssysteme unterschiedlich. Versuchen Sie, den Befehl ping zu zwingen, nach einigen Echoanforderungen mit einem Schalter -n anzuhalten.

ping -n 4 127.0.0.1

0
Derek Nutile