有时,批处理文件需要中断才能正确执行命令吗?


1

我的意思是,例如,如果要将文件移动到目录,并且下一行代码假定文件在那里并尝试打开它,但移动本身未完成,从而导致错误?比如需要在两个命令之间包含ping localhost -n 5?


1
好吧,如果文件是4GB然后是,它仍然无法打开文件,如果它仍然转移。一种方法是使用ping 127.0.0.1 -n 6 > nulOfcourse 4GB将需要超过5秒。DOS不等待1个命令完成。
Dylan Rz 2016年

好的,这就是我想知道的,如果它检查一个命令是否完成后再继续下一个
丹尼尔

Nope Dos不会等待1个命令完成。然后你可能必须使用If else语句来If xx file exists - go to.获得这个想法。
Dylan Rz 2016年

Answers:


4

如果您使用常规批处理,并且没有实现START或类似的方法来生成新进程,那么它将等待上一个命令完成后再继续。

批处理将不会前进到下一个命令,直到它从上一个命令收到退出代码。因此,在基本文件复制的上下文中,它将等待复制命令完成。您可以通过从命令提示符运行“复制”命令来见证这一点; 在完成复制之前,它不会给你提示。

现在,遇到麻烦的地方就是当你启动一个程序来生成你需要等待的新进程时。

例如,启动程序可以退出(将退出代码返回到批处理文件,使其继续运行),然后它开始的新进程在继续批处理之前完成了您需要完成的操作。

在这些情况下,您需要暂停批处理文件一段时间(并希望它在该时间内完成),或者在批处理中使用循环来监视完成的过程(即:with tasklist),然后再继续。


很好地解释了
丹尼尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.