关于windows批处理脚本可靠性的问题

时间:2011-01-13 08:59:52

标签: batch-file batch-processing

我有一个很长的Windows批处理脚本。在它的中间有一个部分使用appcmd来检测我的IIS中的站点的根路径。该部分在独立执行时运行正常。但是当我执行 整个 批处理时,此部分可能无法偶尔检测到网站路径 。我对这个不可靠性问题感到困惑。有没有人见过这个?

由于

解决方案

似乎变量声明与其生效之间存在一些延迟。我改变了批处理文件某些部分的顺序,到目前为止运行正常。我必须说,它仍然很奇怪。

1 个答案:

答案 0 :(得分:0)

由于我不知道您的未知代码中存在什么类型的问题,我只能在批处理文件中显示已知的不可预测或随机行为。

1-多个任务回显行结束 有时但并非总是将换行符和回车符打印为ASCII-Chars 10/13(圆圈和注释)而不是开始换行。

@echo off
if "%1"=="/second" (
  call :task %2
  goto :eof
)
(call "%~0" /second 1 >con ) | ( call "%~0" /second 2 )
echo END OF TASKS
goto :eof

:task
for /L %%n IN (1,1,10) DO (
    echo This is task%1, output no %%n
    ping -n 2 localhost > nul
)

goto :eof

2-有时但并不总是扩展%〜^ LF崩溃,然后命令窗口立即关闭。

@echo off
set critical_content=hello%%~^

echo No crash
for %%a in (1 ) do (
    for %%x in (4) do (
        rem #%critical_content%#
    )
)