Freien Laufwerksbuchstaben finden
Ich versuche mit einer Batch-Datei einen freien Laufwerksbuchstaben zu ermitteln, aber keiner meiner Versuche funktionierte zuverlässig. Haben Sie eine Idee?
- Johannes Endres
Ich versuche mit einer Batch-Datei einen freien Laufwerksbuchstaben zu ermitteln, aber keiner meiner Versuche funktionierte zuverlässig. Haben Sie eine Idee?
Versuchen Sie es doch mit diesem kleinen Skript:
@echo off %debug%
if not "%OS%"=="Windows_NT" exit /b
setlocal
set ll=V T R Q P O N M K J I W X Y Z L U S H G F E D
for %%l in (%ll%) do (
set LW=%%l
mountvol %%l: /L >nul
if errorlevel 1 (
subst | findstr /B "%%l:" > nul
if errorlevel 1 (
net use %%l: >nul 2>&1
if errorlevel 1 goto gotone
)
)
)
echo Kein Laufwerksbuchstabe frei
exit /b
:gotone
echo %LW% ist ein freier Laufwerksbuchstabe
Der gefundene Laufwerksbuchstabe steht am Ende in der Variablen LW
.
Das Skript überprüft sowohl lokale Laufwerke (mountvol
) als auch mit Buchstaben ins System eingebundene Netzwerkfreigaben net use
und Verzeichnisse (subst
). Dabei arbeitet es auch korrekt, wenn etwa in einem DVD-Laufwerk kein Medium liegt oder ein Netzwerklaufwerk zwar verknüpft, aber noch nicht genutzt wurde.
Die Reihenfolge, in der das Skript die Buchstaben überprüft, legt die Variable ll
fest. Wir haben uns für eine (beinahe) zufällige Verteilung entschieden, aber die am wahrscheinlichsten bereits vergebenen Buchstaben ans Ende gestellt. Wenn Sie den alphabetisch ersten (letzten) freien Laufwerksbuchstaben finden möchten, schreiben Sie einfach das Alphabet (umgekehrt) in die Variable.
Soft-Link ()