[前の記事]« バッチのLogをファイルと標準出力に同時に書き出したい
[次の記事]EXE実行時のパラメータをテキストファイルから逐次読み出すには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SYSTEMINFO,VER…システムやハードウェアの状況取得」索引へ

外付けドライブの接続の有無をバッチファイルで検出したい


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
 
 


カテゴリー「SYSTEMINFO,VER…システムやハードウェアの状況取得」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2003年01月25日 01:16に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチのLogをファイルと標準出力に同時に書き出したい」です。

次の投稿は「EXE実行時のパラメータをテキストファイルから逐次読み出すには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート