【问题标题】:Windows Batch file debugger?Windows 批处理文件调试器?
【发布时间】:2009-05-13 17:16:29
【问题描述】:

是否有像 Visual Studio 这样的程序允许您调试 (dos) 批处理文件?我可以使用哪些技术进行调试? Martin Brown 用一个很好的 for / each 循环回答了一个批处理文件问题。我很想看到变量循环时的值。

for /R A %i IN (*.jpg) DO xcopy %i B /M

【问题讨论】:

  • 如果您需要调试批处理文件,您可能使用了错误的工具来完成任务。为什么不试试 cscript.exe?

标签: debugging command-line batch-file


【解决方案1】:

要在变量循环时打印变量的值,您可以尝试:

for /l %A in (1,1,10) do (
    @echo %A
)

如果您想在执行时停止并检查每一行,请尝试:

for /l %A in (1,1,10) do (
    @echo %A
    pause
)

这将在每次迭代时停止脚本。

您的示例看起来像是图像的备份脚本;

for /R %i in (*.jpg) do (
    @echo %i
    xcopy %i %DESTINATION% /M
)

如果您为此编写脚本,则可以将所有输出通过管道传输到日志文件,如果您没有在 shell 中键入,请不要忘记使用 %%i 而不是 %i。

【讨论】:

  • 不错。我不知道你可以在 for 的 do 周围使用括号。现在“echo this”语句对 for 循环有意义。
【解决方案2】:

你的意思是除了做一个回声之外,我是那种东西?我不知道。我只是通过重新删除操作并添加回声来调试我的批处理文件,直到我知道它工作正常。我还编写了自己的一行“outputdebugstring”应用程序,该应用程序将其命令行上的任何内容发送到调试器,但这对于您可以只观看屏幕的大多数批处理来说可能不是必需的。插入“暂停”也有助于减慢速度。

最好的问候 不要

【讨论】:

  • 此外,消除回声通常有助于确定发生错误的确切位置。
  • 我喜欢“echo this”的说法。由于有多个流,您可以为调试设置一个变量,然后将它们与正常输出分开吗?像 2>&1 这样的东西?
【解决方案3】:

运行步骤就像 IDE。你会得到一个相当于编译器的“分析器”。它向您显示代码中的错误和警告。它有一个集成的环境,允许您跨步、进入等。它甚至可以展开我觉得很棒的循环。查看http://www.steppingsoftware.com。这对我帮助很大。

【讨论】:

    【解决方案4】:

    我找到了一个,它的名字是 Running Steps。您可以在其Homepage 阅读有关它的更多信息。无论如何,它支持断点,单步执行之类的:)

    【讨论】:

    • 链接失效,是广告。网站。 :(
    • 两个链接都坏了!
    【解决方案5】:

    喜欢 VS 吗?我不知道。

    就变量值而言,您始终可以将它们打印出来。

    【讨论】:

      【解决方案6】:

      我在编写/修改时使用 Notepad++ 至少给我颜色编码。

      【讨论】:

        【解决方案7】:

        正如其他用户所说,您可以使用 Running Steps 软件。 可以从here下载

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-21
        • 1970-01-01
        • 2012-12-13
        • 2014-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多