当前位置:  开发笔记 > 编程语言 > 正文

如何调试.BAT脚本?

如何解决《如何调试.BAT脚本?》经验,为你挑选了5个好方法。

有没有办法单步执行.bat脚本?问题是,我有一个构建脚本,它调用了很多其他脚本,我想看看它们被调用的顺序是什么,这样我就可以知道我到底要去哪里并添加我的修改.



1> Eric Schoono..:

无论如何,我不知道要逐步执行.bat文件,但您可以使用echopause帮助调试.

ECHO
将回显批处理文件中的消息.如ECHO Hello World将在执行时在屏幕上打印Hello World.但是,如果在批处理文件的开头没有@ECHO OFF,您还将获得"ECHO Hello World"和"Hello World".最后,如果您只想创建一个空行,请键入ECHO.在末尾添加句点会创建一个空行.

暂停
提示用户按任意键继续.

来源:批处理文件帮助

@ workmad3:answer有更多使用该echo命令的好技巧.

另一个有用的资源... DDB:DOS批处理文件提示



2> workmad3..:

确保脚本中没有'echo off'语句,并在调用每个脚本以重置您错过的任何脚本后调用'echo on'.

原因是如果保持echo,则命令解释器将在执行之前输出每个命令(在参数处理之后).使它在生产中使用看起来非常糟糕,但对于调试目的非常有用,因为您可以看到输出出错的地方.

此外,请确保检查由调用的批处理脚本和程序设置的ErrorLevels.请记住,.bat文件中使用了两种不同的方法.如果您调用程序,则错误级别为%ERRORLEVEL%,而从批处理文件中,错误级别在ErrorLevel变量中返回,并且不需要围绕它的%.



3> Myobis..:

面对类似的担忧,我发现以下工具有一个简单的谷歌搜索:

JPSoft的" Take Command "包括一个批处理文件IDE/debugger.他们的简短演示视频很好地展示了它.

几个小时后我就试用了试用版.这是我的第一个拙见:

一方面,它确实允许调试.bat和.cmd脚本,我现在相信它在某些情况下可以提供帮助

另一方面,它有时会阻塞,我不得不杀死它...特别是在调试下标时(并不总是系统地)...它不会显示"调用堆栈"或"跳出"按钮.

它试试了.


@KyleMit你可以解释一下原因吗?因为这是一个独立于其他解决方案的独立解决方案,它确实回答了原始问题?这不是因为它足够短以适应评论,它必须..

4> Jokkke99BE..:

我发现'跑步'(win32)软件完全符合我的要求:http: //www.steppingsoftware.com/

您可以加载bat文件,放置断点/开始单步执行它,同时查看输出和环境变量.

评估版只允许跨越50行...有没有人有类似功能的免费替代品?


他们已经失去了这个领域,并且可能已经破产了.您仍然可以从https://web.archive.org/web/20120421211043/http://www.steppingsoftware.com/ssportal/Downloads/tabid/58/Default.aspx下载评估软件,但无法再购买许可证.

5> 小智..:

退出@ECHO OFF并调用批处理文件将所有输出重定向到日志文件.

c:> yourbatch.bat(可选参数)> yourlogfile.txt 2>&1

发现于http://www.robvanderwoude.com/battech_debugging.php

有用!!别忘了2>&1 ......

WIZ

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有