1

Как я могу получить этот пакетный файл для чтения всех физических и подключенных дисков? Он отлично работает с 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

2 ответа2

2

Там нет переменной, которая просто несет все сопоставленные буквы.

если вы работаете как администратор,

диски 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 ))

(играть с выходами)

... если это не сработает, вам придется пройти через них всех, то есть:

для %% i in (CDEFGHIJKLMNOPQRSTUVW XYZ) СДЕЛАЕТЕ @ifif %% i: @echo %% i:

(вероятно, следует пропустить ожидаемые буквы дисковода оптических дисков / карт памяти).

VBS-скриптинг или Powershell идеально подходит для такого рода вещей.

0

if exist %%i : не всегда работает. Таким образом, вы также можете проверить ваши диски следующим образом:

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

Надеюсь это поможет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .