如何製作一個批次檔來搜尋所有磁碟機?

如何製作一個批次檔來搜尋所有磁碟機?

如何讓這個批次檔讀取所有實體和映射磁碟機?它在 C: 上工作正常,但不會讀取任何其他驅動器。

@echo off
set filePath=
for /R c:\ /d %%a in (*) do if exist "%%a\FileName" set filePath=%%a& goto continue
:continue
if defined filePath echo %COMPUTERNAME% %username% yes >> \\server\%computername%.txt

答案1

沒有任何變數可以簡單地攜帶所有映射的字母。

如果您以管理員身份執行,

fsutil fsinfo 驅動器

返回所有此類驅動器 - 程式碼範例:

FOR /F "usebackq tokens=1" %%a IN (`MOUNTVOL ^| FIND ":\"`) DO (FOR /F "usebackq tokens=3" %%b IN (`FSUTIL FSINFO DRIVETYPE %%a`) DO (IF /I "%%b" EQU "Removable" ECHO %%a ))

(玩輸出)

……如果不可行,你將不得不將它們全部炸毀,即:

對於 (CDEFGHIJKLMNOPQRSTUVW XYZ) 中的 %%i DO @if 存在 %%i:@echo %%i:

(可能應該省略預期的光碟機/記憶卡驅動器號)。

VBS 腳本或 Powershell 是此類事情的理想選擇。

答案2

if exist %%i: 並不總是有效。所以你也可以用這種方式檢查你的驅動器:

(dir %%i:>NUL) && (
  echo Drive [%%i]: exist
) || (
  echo Drive [%%i]: NOT exist
)

希望這可以幫助

相關內容