« SETLOCAL ~ ENDLOCAL内部の環境変数をエクスポートする。(その2) | トップページ | VBAで文字列の中身をダンプする。 »

2008年3月 7日 (金)

ERRORLEVELを返さないコマンドのエラー判定

DELコマンドは、エラーになってもERRORLEVELを返しません。
その代わりに標準エラーにメッセージが出ます。
なので、その有無を判定すればよいでしょう。

DEL A 2>&1 | FIND /V ""

で、ERRORLEVELは、エラーがあれば、0、なければ、1になります。逆ですが:-p

CMD/CEXIT 0
FOR /F "delims=" %2 IN ('"DEL A 2>&1"') DO CMD/CEXIT 1 & ECHO %2

とすれば、ERRORLEVELは、エラーがなければ、0、あれば、1になります。面倒ですが:-(

« SETLOCAL ~ ENDLOCAL内部の環境変数をエクスポートする。(その2) | トップページ | VBAで文字列の中身をダンプする。 »