如何让此批处理文件读取所有物理驱动器和映射驱动器?它对 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
)
希望这可以帮助