2017-02-10 3 views
0

ファイルやフォルダを外部メディア(フラッシュドライブや書き換え可能なCD-ROMやDVRディスクなど)にバックアップするためにバッチファイルを使用します。私はUSBフラッシュドライブから始めます。特定のドライブ文字がバッチファイルで利用可能かどうかを確認する

それは環境の一部ですので、私たちは、起動中に目的のドライブ文字を設定します。SET ZDRIVE1 = F

ので、%ZDRIVE1%がかどうかを確認できるようにしたい:利用可能であり、そうでない場合は、プロンプトユーザーフラッシュドライブを挿入して再テストし、指定されたフラッシュドライブへのファイルのコピーを開始する部分に移動します。

基本的にこれを実行したdskqueryというユーティリティがありましたが、ソースを見つけることができないため、32/64ビット互換に再コンパイルできます。

+0

'WMICのLogicalDiskここで「DRIVETYPE = 2 「get name/value」は、接続されているフラッシュドライブのリストを表示します。それを 'where" drivetype = 2またはdrivetype = 5 "'に変更してCD-ROMドライブをインクルードします。私は、書き込み可能なCDがドライブにインストールされているかどうかを判断する簡単な方法は認識していません。より徹底的な回答が必要な場合は、質問を編集し、作成したコードを投稿して、問題の原因を説明する必要があります。 – rojo

+0

@rojoこれは絶対確実ではありません。私はリムーバブルUSBドライブを持っています。それはドライバタイプ3として報告されています。 – DavidPostill

答えて

0
@echo off 
Set "ZDRIVE1=F" 
:test 
pushd %ZDRIVE1%: 
if "%errorlevel%" == "0" (
echo the drive is aviable. 
pause 
goto :eof 
) else (
echo please insert the flash drive. 
pause 
) 
goto test 

goto yourlabel
と8行目goto :eofを置き換えるUSBフラッシュドライブのドライブがそうでG:H:と、不要F:ことができます...

+0

代わりに 'IF EXIST'を使わないのはなぜでしょうか?私は彼らが成功したときにも彼らのポップを入れます。 – Squashman

関連する問題