数ヶ月ぶりの続きであるが、まだまだ終わらない。「続」が6つなので7回目ということだ。
ネットワーク上のファイル・ディレクトリに対して、if exist での判断が出来ないということで終わっていたが、何とかなりそうである。
Local Disk | UNC name | Network Drive | |||||||
---|---|---|---|---|---|---|---|---|---|
FILE | DIR | NONE | FILE | DIR | NONE | FILE | DIR | NONE | |
if exist %~s1 | 真 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist %~s1\ | 偽 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist %~s1\\ | 偽 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist %~s1\NUL | 偽 | 真 | 偽 | 偽 | 偽 | 偽 | 真 | 真 | 偽 |
if exist %~s1\\NUL | 偽 | 真 | 偽 | 偽 | 偽 | 偽 | 真 | 真 | 偽 |
if exist %~s1\* | 偽 | 真 | 偽 | 偽 | 真 | 偽 | 偽 | 真 | 偽 |
if exist %~s1\\* | 偽 | 真 | 偽 | 偽 | 真 | 偽 | 偽 | 真 | 偽 |
if exist "%~1" | 真 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist "%~1\" | 偽 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist "%~1\\" | 偽 | 真 | 偽 | 真 | 真 | 偽 | 真 | 真 | 偽 |
if exist "%~1\NUL" | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 |
if exist "%~1\\NUL" | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 | 偽 |
if exist "%~1\*" | 偽 | 真 | 偽 | 偽 | 真 | 偽 | 偽 | 真 | 偽 |
if exist "%~1\\*" | 偽 | 真 | 偽 | 偽 | 真 | 偽 | 偽 | 真 | 偽 |
と、
if exist "%~1\*" echo ディレクトリだ
が使えそうである。空ディレクトリやルートディレクトリでも大丈夫。
同じネットワーク上のファイルでも、UNC形式とドライブにマウントしての場合で、\NULをつけたときの真・偽が変わってくるのがちょっと怪しげ。