Wie erstelle ich eine Batchdatei zum Durchsuchen aller Laufwerke?

Wie erstelle ich eine Batchdatei zum Durchsuchen aller Laufwerke?

Wie kann ich mit dieser Batchdatei alle physischen und zugeordneten Laufwerke lesen? Mit C: funktioniert es einwandfrei, aber kein anderes Laufwerk wird gelesen.

@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

Antwort1

Es gibt keine Variable, die einfach alle zugeordneten Buchstaben trägt.

Wenn Sie als Administrator arbeiten,

fsutil fsinfo Laufwerke

gibt alle diese Laufwerke zurück - ein Beispielcode:

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 ))

(mit den Ausgängen spielen)

... wenn das nicht funktioniert, müssen Sie sie alle durchgehen, z. B.:

für %%i in (CDEFGHIJKLMNOPQRSTUVW XYZ) DO @if exist %%i: @echo %%i:

(die erwarteten Laufwerksbuchstaben für das optische Laufwerk/die Speicherkarte sollten wahrscheinlich weggelassen werden).

VBS-Skripting oder Powershell sind für derartige Dinge ideal.

Antwort2

if exist %%i: funktioniert nicht immer. Sie können Ihre Laufwerke also auch folgendermaßen überprüfen:

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

Hoffe das hilft

verwandte Informationen