0

かなり長い Windows バッチ スクリプトを取得しました。その途中に、appcmd を使用して IIS 内のサイトのルート パスを検出するセクションがあります。そのセクションは、スタンドアロンで実行すると正常に動作します。しかし、バッチ全体を実行すると、このセクションでサイト パスの検出に失敗することがあります。私はこの信頼性の低い問題に完全に混乱しています。誰もこれに会ったことがありますか?

ありがとう

解決

変数の宣言から有効になるまでに多少の遅延があるようです。バッチファイルの一部の順序を変更しましたが、今のところ問題なく動作しています。私は言わなければならない、それはまだ奇妙です。

4

1 に答える 1

0

不明なコードにどのような種類の問題があるのか​​わからないため、バッチファイルで既知の予測不可能またはランダムな動作しか表示できません。

1-複数のタスク行末のエコー常にではありませんが、改行とキャリッジリターンは、新しい行を開始するのではなく、ASCII文字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%#
    )
) 
于 2011-01-13T18:12:04.310 に答える