5

USB ドライブを検出するバッチ スクリプトを作成しようとしています。たとえば、接続されている場合はc:\test\big.txtを USB ドライブにコピーし、別のフラッシュ ドライブを検出するためにループします。

4

4 に答える 4

9
@echo off
for %%d in (D: E: F: G: H: I: etc...) do (
   if exist %%d\nul (
      echo USB at drive %%d connected
   )
)

編集:以下はそれを行う正しい方法です:

@echo off
for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do (
   for %%c in (%%b) do (
      for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (
         if %%d equ Removable (
            echo Drive %%c is Removable (USB^)
         )
      )
   )
)
于 2012-06-03T19:21:20.680 に答える
1

私はこれが古いことを知っていますが....

@echo off

for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 2^>NUL`) do (

if %%l equ 2 (
copy c:\test\big.txt %%i
        )
        )

もちろん、これは両方のドライブが挿入されていることを前提としています。

于 2013-11-22T19:14:26.890 に答える
0

@Aacini今日はこのケースのセットアップがうまくいかないので、代わりにUSB Webカメラを見つけようとしました。私はdevmgmt.mscとを使用devcon listclassesして、接続された USB カメラが持つメンバーシップを把握しました。いくつかのテストの後、私は にたどり着きましたdevcon find =Image USB\*。USB大容量記憶装置に対して同じことをするのは簡単だと思ったので、devcon find =Volume(listclassesごとに)試しました。残念ながら、これにより、ドライブ文字にマップする必要がある GUID が出力されます。このオーバーフローをざっと見てみると、 を使用してレジストリから実行できることがわかりますがreg query、現時点では、これfsutilが最も簡単なケースのようです。

于 2012-06-13T07:11:24.233 に答える