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