如何讓這個批次檔讀取所有實體和映射磁碟機?它在 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
)
希望這可以幫助