Как создать пакетный файл для поиска по всем дискам?

Как создать пакетный файл для поиска по всем дискам?

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

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

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

для %%i в (CDEFGHIJKLMNOPQRSTUVW XYZ) ДЕЛАТЬ @if существует %%i: @echo %%i:

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

Для таких задач идеально подходят скрипты VBS или Powershell.

решение2

if exist %%i: не всегда работает. Так что вы также можете проверить свои диски таким образом:

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

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

Связанный контент