ドライブがあるか無いかチェック方法
ドライブがあるか無いかチェック方法
0.改訂履歴
1.はじめに
このドキュメントでは,Windows2000で,バッチプログラムでドライブがあるか無いかチェックする手順を説明する.
2.existとnulを使う
- MS-DOSの頃から,ディレクトリには,仮想的にnulというファイルがある.
- ドライブがマウントされているか居ないか,このファイルの存在チェックを行えばよい.
- まず,ネットワークドライブをマウントしてみる.
D:\>net use S: \\10.0.4.70\c$
コマンドは正常に終了しました。
D:\>
|
- そのドライブに,nulファイルがあるか確認してみる.
D:\>if exist S:\nul echo AHO
AHO
D:\>
|
- AHOが表示されたので,ドライブがある事になる.
- 次に,ネットワークドライブを削除する.
D:\>net use s: /delete
s: が削除されました。
D:\>
|
D:\>if exist S:\nul echo AHO
D:\>
|
- AHOが表示されないので,ドライブが無い事が判る.
- ちなみに,Windows2000だと,nulファイルを指定しなくてもドライブの判断は可能のよう.
D:\>net use S: \\10.0.4.70\c$
コマンドは正常に終了しました。
D:\>if exist S: echo AHO
AHO
D:\>
|
- 昔?のOSは,if existでファイルは判断できたけどディレクトリは判断できなかったんだが...
3.応用
- これを応用して次のようなバッチファイルを作る事が出来る.
@echo off
rem Unmount network drive.
if exist S: net use s: /delete
rem Mount network drive.
net use S: \\10.0.4.70\C$
if exist s:\nul goto :SUCCESS
goto :ERROR_PROCESS
:SUCCESS
echo Over night success!
goto :EOF
:ERROR_PROCESS
echo Error! Please Retry!
goto :EOF
|