ディレクトリかどうかの判断

変数Aに何らかのパス名が入っているとして、それがディレクトリかファイルかの判断には、

if exist %A%\NUL echo ディレクトリ

を愛用していた。しかし、Aが空白を含んでいるときは、これが正しくない。%A%\NULが存在しないのだ。
バグではないか?(未調査)

対応方法としては、
(1) for制御変数にいれ、ショートネーム修飾子を使い、if exist %%~sA\NULのようにする
(2) for制御変数にいれ、属性修飾子を使い、その先頭がdかどうかで判断

    set W=%%~aA  & if "!W:~0,1!" == "d"