我在使用批处理文件命令时遇到了问题 - 当我运行程序时,批处理文件末尾有一个“PAUSE”命令,但是命令窗口仍然会自动立即关闭,速度太快以至于我看不到结果。还有其他方法可以防止命令窗口关闭,或者以某种方式获取结果吗?例如,是否可以发送打印版本,插入某处?
背景 - 我对命令行一无所知,所以如果可以的话,请将任何回复简化为新手级别的解释。我最终试图确定 MS Project 文件的版本,并完全使用/遵循了此网站的说明,但是结果不会显示给我 - 命令窗口立即消失:
我使用的 Microsoft 网站获取说明: 确定mpp文件(MS Project计划文件)版本的简单方法
批处理文件中的文本/命令:
@ECHO OFF
REM Version.bat
ECHO Filename: %1
ECHO.
ECHO -- CHECK FOR PROJECT VERSION --
strings %1 | findstr "[0-9],.,....,...." 2>NUL
ECHO Check the following list for the first one or two digits of the string above (xx,.,....,....)
ECHO List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010)
ECHO.
ECHO -- CHECK FOR MPP FILE VERSION --
strings %1 | findstr ".MPP" 2>NUL
ECHO Check the following list for the digit(s) at the end of the string above (...MPPxx)
ECHO List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010)
ECHO.
PAUSE
答案1
我怀疑文件有错误。请尝试从现有命令窗口调用批处理文件以查看消息。
最有可能的问题是脚本正在调用一个名为“strings”的外部程序,根据你链接到的文档可以发现这里为了使批处理文件能够找到它,您应该将其安装在运行它的目录中,否则您将需要修改 PATH 系统环境变量或将其放在系统目录中。
答案2
等待
秒:
PING 127.0.0.1 -n <sec> >NUL
等待10秒:
PING 127.0.0.1 -n 10 >NUL
等待10秒:
powershell measure-command {sleep -s 10} ^| select TotalSeconds ^| Ft -Au
等待 1/4 秒或 250 毫秒:
powershell measure-command {sleep -m 250} ^| select TotalMilliseconds ^| Ft -Au
暂停
电源外壳:
powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')
变量2:
powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') >NUL
变量3:
powershell cmd /c pause ^| out-null
变量4:
powershell [Console]::ReadKey()>NUL
变量5:
powershell sleep
暂停命令,批处理/cmd:
cmd /c pause
答案3
如果前一个命令是批处理文件,则不会执行文件的其余部分。尝试在前面的命令之前调用/