batch file命令PAUSE不起作用

我正在创build一个简单的batch file来帮助一些事情,并且我也有一些打印出来的说明,我希望用户在退出之前看到这些说明。 目前,窗户closures很快。 所以我在文件末尾添加了PAUSE ,但不想工作。

我看了其他关于SO的问题,并且已经检查过,以确保行结束符是CRLF并且在文件末尾有CRLF

有什么build议么?

暂停前的最后一个命令是否成功执行? 介意分享你的脚本 – 至less有几条命令?

另外,因为你似乎正在使用Windows7,尝试超时命令,看看是否工作。

如果最后一个命令暂停失败,则不起作用。

你可以通过在你正在运行的命令后面加上“call”来解决它(暂停之前的任何命令),那么暂停将会起作用。

所以例如我有一个phpunitbatch file,看起来像这样:

 phpunit tests/sometests.php pause 

当phpunit失败,它只是退出没有暂停。 改变它到这使它暂停正确:

 call phpunit tests/sometests.php pause 

我想我知道问题在哪里,我有同样的问题。 所以,如果你是这样做的,你创build一个新的文件,把所有的批量信息,并保存它像普通文本,之后,只需重命名扩展它不会工作:)。 你必须通过文本编辑器保存它,从那里你必须select“batch file( .bat; .cmd; *。nt)”,例如记事本+ +,其可能是因为编码,所以这样做,我把它会好的。 GL! 🙂

我甚至有回声的问题…假设它是由长batch file引起的…暂停正在执行,但它并没有暂停,这几乎就像是在暂停执行后按下一个键。

试过以上build议的解决scheme; 没有工作。

所以只是为了将来的参考,这是我所做的:

基本上只是“暂停>没有&&暂停>无”; 每次工作。

 @echo off CALL :ForcePause "Press any key to resume." ECHO. ECHO Hello World! ECHO. CALL :ForcePause "Press any key to exit." EXIT REM You can remove echo if you don't want to pass custom string for pause :ForcePause echo %~1 pause > nul && pause > nul GOTO :EOF 

除了Tim的答案之外,如果你想让窗口始终显示,你可以写如下的.bat文件:

 call phpunit tests/sometests.php cmd /k