Batch file command PAUSE does not work
我正在创建一个简单的批处理文件来帮助完成一些事情,并且我有一些指示,它会打印出来,我希望用户在退出前看到这些指示。目前,窗口关闭得很快。所以我在文件末尾添加了
我查看了关于so的其他问题,并检查了行尾是否为
有什么建议吗?
如果最后一个命令失败,暂停将不起作用。
您可以通过将"call"放在正在运行的命令后面(暂停之前的任何命令)来修复它,然后暂停将工作。
例如,我有一个phpunit批处理文件,如下所示:
1 2 | phpunit tests/sometests.php pause |
当phpunit失败时,它没有停顿就退出了。将其更改为此选项会使其正确暂停:
1 2 | call phpunit tests/sometests.php pause |
暂停前的最后一个命令执行成功吗?介意分享你的脚本吗-至少最后几个命令?
或者,由于您似乎在使用Windows7,请尝试timeout命令,看看是否有效。
我在Echo上也有问题…假设它是由长批处理文件引起的…暂停正在执行,但它没有暂停,几乎就像执行暂停后按了一个键。
尝试过上述建议的解决方案,但没有奏效。
所以,为了将来的参考,我做了以下工作:
基本上,"暂停>nul&;暂停>nul";每次都有效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @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 |
我想我知道问题在哪里,我也有同样的问题。因此,如果您这样做,您将创建一个新文件,并将所有批处理信息放在其中,然后像普通文本一样保存它,然后重命名扩展名,它将不起作用:)。您必须通过文本编辑器保存它,从中您必须选择"批处理文件(.bat;.cmd;*.nt)",例如记事本++,这可能是因为编码,所以请这样做,我相信它会正常。GL!:)
我也有同样的问题。发生这种情况的原因有两个:第一个是以管理员身份运行批处理文件时。
我已将批处理文件移到桌面,并以管理员身份进行尝试,它工作正常。我已尝试将批处理文件移动到任何磁盘根目录(如c:d:etc),但它工作正常。我尝试将批处理文件移到任何带有空格的目录中,但它工作正常。
第二个也是主要原因:批处理文件的目录中有一些特殊字符(如@或&;或类似的字符)。
只需找到这个特殊字符并将其从文件夹名称中删除。它会正常工作。
除了Tim的回答之外,如果希望窗口始终显示,还可以编写.bat文件,如下所示:
1 2 | call phpunit tests/sometests.php cmd /k |