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?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 1 Min.
Von
  • 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 ()