有没有一种方式可以逐步执行 .bat 脚本?问题是,我有一个构建脚本,它调用了许多其他脚本,我想知道它们被调用的顺序,以便我知道在哪里添加我的修改。
有没有一种方式可以逐步执行 .bat 脚本?问题是,我有一个构建脚本,它调用了许多其他脚本,我想知道它们被调用的顺序,以便我知道在哪里添加我的修改。
我不知道任何一种方法可以逐步执行.bat文件,但您可以使用echo
和pause
帮助调试。
ECHO
将在批处理文件中回显消息。例如,ECHO Hello World在执行时将在屏幕上打印Hello World。但是,如果在批处理文件开头没有@ECHO OFF,则还会得到“ECHO Hello World”和“Hello World”。最后,如果只想创建空行,请键入ECHO。在末尾添加句点可创建空白行。PAUSE
提示用户按任意键继续。
来源:批处理文件帮助
@workmad3:答案有更多使用echo
命令的好技巧。
另一个有用的资源... DDB: DOS批处理文件技巧
请确保在脚本中没有“echo off”语句,并在调用每个脚本后调用“echo on”以重置您错过的任何内容。
原因是如果开启了echo,那么命令解释器将在执行每个命令(参数处理后)之前输出它。 这使得在生产中使用看起来非常不好,但在调试目的下非常有用,因为可以看到输出出了什么问题。
此外,请确保检查所调用的批处理脚本和程序设置的错误级别(ErrorLevels)。 请记住,在.bat文件中有两种不同的方法用于此。 如果调用了一个程序,则Error level在%ERRORLEVEL%中,而从批处理文件中返回的错误级别存储在ErrorLevel变量中,不需要用%号括起来。
面对类似的问题,我在简单的谷歌搜索中找到了以下工具:
JPSoft的"Take Command"包含了一个批处理文件IDE/调试器。他们的短视频演示得非常好。
我使用试用版已有几个小时。这是我的第一个简单意见:
它值得一试。
将@ECHO OFF注释掉并将批处理文件的所有输出重定向到日志文件中..
c:> yourbatch.bat(可选参数)> yourlogfile.txt2>&1
发现于http://www.robvanderwoude.com/battech_debugging.php
它起作用了!!不要忘记2>&1...
WIZ
你尝试过将结果重定向到文件吗?比如将 whatever.bat >log.txt。
在这种情况下,你需要确保每个被调用的脚本都像 >>log.txt 一样记录日志到文件中。
另外,如果你在批处理文件开头和结尾加上日期 /T 和时间 /T,你可以得到脚本运行时的时间和顺序,从而确定脚本的运行时间和顺序。
echo
和 pause
的语句。在你的脚本结尾处使用cmd \k
可以查看错误信息。执行完成后,它不会关闭命令提示符。
cmd /K
。无论如何,pause
有什么问题吗? - aschipflcmd.exe
) 实例在批处理脚本完成后也会终止,因此无法读取可能存在的输出和错误消息。