batch file在第一个命令后停止运行

我正在使用“HTML匹配”工具来比较两个HTML文件。 由于我必须比较许多文件,我创build了一个像后续文件一样的batch file。 例如,我只给五组文件。

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提示符中执行这个batch file时,只有第一行,即只有'a1.html',被比较并产生一个结果。 然后执行停止。

在你正在运行的命令前添加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 

您的问题的答案是编写CALL HTMLMATCH.EXE {和其余的参数}。 只需在batch file中的每个可执行命令前使用CALL即可。

如果没有空格标记,则不必插入引号。

尝试一下:

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

也许它会解决你的问题。

一个简单而精确的例子:第一个命令是cmd / u

感谢上面的好问题和答案。 不过,就我个人而言,尽pipe它很简单,但他们还不够(也许是我的错),所以这是我的问题。

在我的“D:\ MyBak \ Videos”文件夹中,我有一个“dir_date_201604.log”文件,其中列出了该文件夹的内容(我正在运行Windows 7专业版64位)。 每次我在“D:\ MyBak \ Videos”文件夹中添加或更改一些文件时,都会运行这个“dirDate_201604.BAT”文件:

 Call cmd /u dir /od /tw > dir_date_201604_2tb.log copy dir_date_201604_2tb.log C:\My\DL Call cmd /a 

很长一段时间,这个英美烟草公司只有两个中间命令,它运行良好。 但是现在我添加了2个命令“Call cmd / u”和“Call cmd / a”,BAT文件在第一个命令“Call cmd / u”后停止。 我尝试了一些替代方法,例如在2“cmd”开头删除2“Call”或用2“Start”replace它们,或者在3个独立的BAT文件中逐出4个命令; 这也失败了。 感谢所有提供实际解决scheme的人员。

凡尔赛,2017年1月27日星期五09:41:30 +0100,编辑10:05:50