wake-up-neo.com

Die Batchdatei wird nach dem ersten Befehl nicht mehr ausgeführt

Ich verwende das Tool 'HTML Match', um zwei HTML-Dateien zu vergleichen. Da ich viele Dateien vergleichen muss, erstelle ich eine Batchdatei wie die nachfolgende. Zum Beispiel gebe ich nur fünf Dateisätze.

cd "C:\Program Files\HTML Match"
HTMLMATCH.EXE "D:\Raj\compare1\a1.html" "D:\Raj\compare2\a1.html" "D:\Raj\compare_res\a1.html"
HTMLMATCH.EXE "D:\Raj\compare1\a2.html" "D:\Raj\compare2\a2.html" "D:\Raj\compare_res\a2.html"
HTMLMATCH.EXE "D:\Raj\compare1\a3.html" "D:\Raj\compare2\a3.html" "D:\Raj\compare_res\a3.html"
HTMLMATCH.EXE "D:\Raj\compare1\a4.html" "D:\Raj\compare2\a4.html" "D:\Raj\compare_res\a4.html"
HTMLMATCH.EXE "D:\Raj\compare1\a5.html" "D:\Raj\compare2\a5.html" "D:\Raj\compare_res\a5.html"

Wenn ich diese Batch-Datei in einer cmd-Eingabeaufforderung ausführen, wird nur die erste Zeile, d. H. Nur "a1.html", verglichen und es wird ein Ergebnis angezeigt. Dann stoppt die Ausführung.

59
rajashekar

Fügen Sie call vor den Befehlen ein, die Sie ausführen.

Sie können dies auch in eine for-Schleife ändern, also:

FOR /L %i in (1,1,5) DO CALL HTMLMATCH.EXE D:\Raj\compare%i%\a%i%.html D:\Raj\compare%i%\a%i%.html D:\Raj\compare_res\a%i%.html
99
Ben

Die Antwort auf Ihr Problem ist, CALL HTMLMATCH.EXE (und die übrigen Parameter) zu schreiben . Verwenden Sie einfach CALL vor jedem ausführbaren Befehl in der Batchdatei.

44
BJoe

Sie müssen keine Anführungszeichen einfügen, an denen sich keine Leerzeichen befinden. 

Versuch das:

HTMLMATCH.EXE D:\Raj\compare1\a1.html D:\Raj\compare2\a1.html D:\Raj\compare_res\a1.html

Vielleicht löst es Ihr Problem. 

0
Adrian K.

Ich war auf der Suche nach etwas wirklich ähnlichem und habe versucht, denke ich, alle Antworten sind hier geblieben, aber ich habe endlich die Lösung für mein Problem gefunden! 

In meinem Skript möchte ich überprüfen, ob ein Prozess ausgeführt wird. Wenn nicht, starten Sie ihn (a .exe) und prüfen Sie, ob ein anderer Prozess ausgeführt wird. Wenn nicht, starten Sie ihn auch (lassen Sie jedoch alle Programme geöffnet) und das Problem ist aufgetreten dass die erste .exe-Datei gestartet wurde, dann aber nicht zur zweiten verschoben wurde, da sie bis zum Ende des Prozesses wartete. Es funktioniert endlich für mich mit start und der Zauber kommt mit ...

/trennen

es funktioniert für mich als: 

start "program1" /separate program1.exe
other commands

Bevor es aufhörte, nachdem Programm1 gestartet wurde, weil es gewartet hat, bis es geschlossen wurde, denke ich, aber das würde nicht passieren, weil ich es offen lassen wollte. Nun mit dem Start/Separate geht es mit den anderen Befehlen weiter. 

Ich habe es in einem anderen Forum gefunden, aber die Sache ist, dass es das Handbuch ist,/es wird verwendet, um in einem anderen Speicherplatz zu starten. 

0
testfailed