|
128) 外付ドライブの接続を確認するBAT Teru 2003/01/25(土) 14:58 |
|
先日お世話になったTeruです。ありがとうございました。 さて今回のご相談ですが USB接続のMOドライブがあります。このドライブは接続したり、しなかったりする状況です。 バッチ処理でこのMOディスクにバックアップする手順の前にこのドライブにアクセスできるかどうかを確認して、アクセスできる場合はバックアップし、アクセスできない場合はメッセージを表示し終了する条件分岐するバッチファイルを作りたいと思っています。 よろしくご指導お願いします。 |
|
129) Re:外付ドライブの接続を確認するBAT ふぇむ 2003/01/25(土) 23:16 |
|
ふぇむと申します。 >USB接続のMOドライブがあります。このドライブは接続したり、しなかったりする状況です。 >バッチ処理でこのMOディスクにバックアップする手順の前にこのドライブにアクセスできるかどうかを確認して、アクセスできる場合はバックアップし、アクセスできない場合はメッセージを表示し終了する条件分岐するバッチファイルを作りたいと思っています。 ふぇむの自己流(Win2000での話)ですが、そのパターンはふぇむはおおむね次のようなサブルーチンを組み、セットされた変数の値によって分岐します。 心臓部分だけ書いておきます。これは「ディレクトリの存在をチェックする」といったような、より汎用性の高いものを縮退させたような形になってます。 なお、ふぇむ自己流では実際いろんな事前チェックをかけますが、ここでは割愛します。 以下で、例えば X: ドライブの存在をチェックしたければ、 CALL :CHK_DRIVE X: RETCODE としてコールして、戻った後に if /i NOT "%RETCODE%" == "EXIST" のときにそのドライブがない、と判断します。 :CHK_DRIVE set __CHECK_DRV=%~1\ set __CHECK_DIR_PUSHD= pushd "%__CHECK_DRV%" >nul 2>&1 if ERRORLEVEL 1 ( rem ## pushd失敗 set __CHECK_DIR_PUSHD=UNSUCCESS ) else ( rem ## pushd 成功 → popdで戻しておく set __CHECK_DIR_PUSHD=SUCCESS popd ) if /i "%__CHECK_DIR_PUSHD%" == "SUCCESS" ( set %2=EXIST ) else ( set %2=NOT_EXIST ) goto :eof |
|
130) Re:外付ドライブの接続を確認するBAT じゃく 2003/01/26(日) 00:09 |
|
>バッチ処理でこのMOディスクにバックアップする手順の前にこのドライブにアクセスできるかどうかを確認して、アクセスできる場合はバックアップし、アクセスできない場合はメッセージを表示し終了する条件分岐するバッチファイルを作りたいと思っています。 たとえば、MOのドライブが Dドライブだった場合 D:\NULの存在をチェックすればいいでしょう。 (ドライブがEなら E:\NUL) コーディング例は次のようになります。 if not exist D:\NUL goto NG (バックアップ処理のバッチを記述) goto end :NG echo MOドライブが準備されていません :end |