2012-05-30 64 views
0

所以我试图在网上搜索解决方案,但找不到任何解决方案。 基本上,我有这样的命令:BAT失败的复制命令 - 在&&后继续?

for /D %%X in (s*) do copy f1.txt %%X\f1.txt && copy f2.txt %%X\f2.txt 

但是,如果f1.txt不存在,我得到一个The system cannot find the file specified和f2.txt不会被复制为给定的目录。

即使f1.txt不存在,我如何解决这个问题让f2.txt被复制? 请注意,我不能简单地分成两条不同的线,因为我在具有许多命令的巨大for循环中拥有这些复制语句。

回答

0

更改&&||

1

感谢您的答复JMC。它让我发现这个web page

在那里,我发现我应该在& &更改为&实际:

命令1 &命令2:使用多个命令在一个命令行分离。 Cmd.exe运行第一个命令,然后运行第二个命令。

所以它应该是:

for /D %%X in (s*) do copy f1.txt %%X\f1.txt & copy f2.txt %%X\f2.txt 
+1

正确的。只有在前一个没有失败的情况下,&&后面的命令才会执行。顺便说一句,只有另一种方式:仅调用前一个命令的下一个命令确实失败。如果你想让两者独立运行,你需要'&'。 –