リダイレクトの失敗検知
出力リダイレクトの「> XXX」で、XXX がディレクトリだったり、リードオンリーファイルだったりするとリダイレクトが失敗する。また、入力リダイレクト「< XXX」で、XXX がディレクトリだったり、存在しないとリダイレクトが失敗する。
ただし、これらの場合も、ERRORLEVEL はセットされない。リダイレクトの失敗を検知するためには、
cmd /c "echo > XXX" 2>NUL || echo リダイレクト失敗 cmd /c "echo < XXX" 2>NUL >NUL || echo リダイレクト失敗
のように、cmd を起動することで、失敗を ERRORLEVEL に反映できる。
もちろん、if exist や dir /ad や %~aF などの手段によって属性などを調べることで、リダイレクトの失敗条件を別の手段でチェックすることも出来る。