我想创建一个 bat 文件来执行一些基本任务。当我运行它时,它会关闭窗口。我猜是错误。我怎样才能阻止 bat 关闭窗口,以便我可以查看错误。
mybat.bat:
echo cd /d d:
echo sencha create jsb -a http://my.local/ext/cutter/app/index.html -p app.jsb3
echo sencha build app.jsb3 -d .
答案1
批处理脚本运行后会自动关闭窗口,这并不表示出现错误,如果您在脚本末尾加上“暂停”一词,脚本将停止并等待您按下某个键后再继续
答案2
两个选项:
发送输出到文件 (
command > c:\output.log
)设置延迟。在较新版本,可以使用
timeout \t xxx
xxx 表示秒数。在旧版本中,你可以使用类似PING 127.0.0.1 -n 6
每次 ping 大约需要一秒钟...但是嘿,你不需要精确,对吧?:)
这两种方法都避免了暂停按钮上的疯狂
答案3
Chris 的回答是正确的。但是如果实际上出现错误时,暂停不会阻止 cmd shell 退出。下面是我在不重定向输出(并且必须继续打开输出日志文件)的情况下简单地排除故障的方法:
运行 cmd.exe。然后在命令窗口中,再运行“ cmd<enter>
”几次。这会将 cmd.exe 作为 cmd.exe 的子项执行,但在同一命令窗口中。
现在从命令窗口内调用 .bat / .cmd,例如C:\Temp\mybat.bat
- 如果出错,它将退出正在运行的 cmd.exe 并在窗口中显示错误(和任何其他输出),但将处理返回到同一命令窗口内的父 cmd.exe 进程。由于存在父进程,批处理窗口不会在出错时关闭。
答案4
从命令行 (cmd) 运行它,它会显示输出,并且在完成后不会关闭。它关闭的原因是,您只是将内容回显(打印)到终端。它实际上没有做任何事情。删除所有这些回显。
C:\>echo /?
Displays messages, or turns command-echoing on or off.
ECHO [ON | OFF]
ECHO [message]
Type ECHO without parameters to display the current echo setting.