it-swarm.com.ru

Пакетный файл останавливается после первой команды

Я использую инструмент «HTML Match» для сравнения двух файлов HTML. Поскольку мне приходится сравнивать много файлов, я создаю командный файл, подобный следующему. Например, я даю только пять наборов файлов.

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"

Когда я выполняю этот командный файл в командной строке cmd, только первая строка, то есть только «a1.html», сравнивается и выдает результат. Тогда исполнение прекращается.

59
rajashekar

Добавьте call перед командами, которые вы запускаете.

Вы также можете изменить это на цикл for, так:

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

Ответом на вашу проблему является написание CALL HTMLMATCH.EXE (и остальных параметров) . Просто используйте CALL перед каждой исполняемой командой в командном файле.

44
BJoe

Вам не нужно вставлять кавычки там, где между ними нет пробела. 

Попробуй это:

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

Может быть, это решит вашу проблему. 

0
Adrian K.

Я искал что-то действительно похожее и попробовал, я думаю, все ответы, оставленные здесь, но я наконец нашел решение своей проблемы !! 

В моем сценарии я хочу проверить, запущен ли один процесс, если нет, запустите его (.exe), а затем проверьте, запущен ли другой процесс, если нет, запустите его тоже (но оставьте все программы открытыми), и проблема заключается в том, что первый .exe был запущен, но затем не переместился на второй, потому что ожидал завершения процесса. Наконец-то он работает для меня с start и магия приходит с ...

/ отдельный

у меня это работает как: 

start "program1" /separate program1.exe
other commands

Думаю, до того, как он остановился после запуска программы1, потому что ожидал, пока он не будет закрыт, но этого не произошло, потому что я хотел оставить его открытым. Теперь при запуске/отделении он продолжается с другими командами. 

Я нашел это в другом форуме но дело в том, что это руководство,/отдельный используется для запуска в другом пространстве памяти. 

0
testfailed