Supportnet / Forum / BS-Sonstige
Aktives Laufwerk in einer Batch-Datei abfragen
Frage
Habe diese Anfrage schon einmal gestellt und wollte auf die Beiträge antworten, was mir leider nicht möglich war!
Es kam nur eine Meldung "Posting geschlossen", was hab ich falsch gemacht?
Jetzt meine Antwort an Semi
Auf Diese Weise kann ich das aktuelle Verzeichnis anzeigen lassen,
aber wie kann ich dann mit einer If-Abfrage klären welches Laufwerk es ist.
In der Umgebungsvariablen ist ja dann der komplette Pfad, ich bräuchte ja quasi nur den ersten Buchstaben daraus!
Meine weitere Abfrage sollte dann in etwa so aussehen:
If not "%root%"=="c" goto fehler
Antwort 1 von hendrikw
mit "%~d0" bekommst Du das Laufwerk, auf dem die Batch ist (z.B. "C:").
mfg
Hendrik
mfg
Hendrik
Antwort 2 von clemens
Das hab ich jetzt noch nicht ganz geschnallt,
wie muß ich das eingeben, etwa
'set var=%~do' ?
In der Dos-Eingabeaufforderung von meinem WinXP gehts nicht!
wie muß ich das eingeben, etwa
'set var=%~do' ?
In der Dos-Eingabeaufforderung von meinem WinXP gehts nicht!
Antwort 3 von semi
@echo off
set current_dir=%cd%
cd cd set root=%cd%
cd %current_dir%
if "%root%"=="C:\" goto c
if "%root%"=="D:\" goto d
echo %root%
goto end
:c
echo %root%
goto end
:d
echo %root%
goto end
:end
Antwort 4 von semi
Oh, was neues :-)
Die Lösung von Hendrik mit den CALL Parametern ist besser.
Gebe call /? im Dos-Fenster ein, dann siehst Du die Syntax dazu.
Gruß,
Michael
Die Lösung von Hendrik mit den CALL Parametern ist besser.
@echo off
set laufwerk=%~d0
echo %laufwerk%
set laufwerk=
Gebe call /? im Dos-Fenster ein, dann siehst Du die Syntax dazu.
Gruß,
Michael
Antwort 5 von clemens
Jetzt habe ich es immer noch nicht geschafft!
Hendriks Lösung gibt mir stets nur Laufwerk C:\ wieder, wo die Batch-Datei liegt, auch wenn ich sie von einem anderen Ort starte!
Bei Michaels Vorschlag bekomme ich zwar immer den korrekten Pfad in die Variable, da ich aber nur den Laufwerksbuchstaben abfragen möchte, und nicht den ganzen Pfad klappt es so auch noch nicht!
Hendriks Lösung gibt mir stets nur Laufwerk C:\ wieder, wo die Batch-Datei liegt, auch wenn ich sie von einem anderen Ort starte!
Bei Michaels Vorschlag bekomme ich zwar immer den korrekten Pfad in die Variable, da ich aber nur den Laufwerksbuchstaben abfragen möchte, und nicht den ganzen Pfad klappt es so auch noch nicht!
Antwort 6 von hendrikw
Vorschlag:
Rufe die Batch mit einem Punkt (.) als erstem Parameter auf und verwende "%~d1"
mfg
Hendrik
Rufe die Batch mit einem Punkt (.) als erstem Parameter auf und verwende "%~d1"
mfg
Hendrik
Antwort 7 von clemens
Super, es klappt jetzt!
Geniale Idee mit dem Punkt als ersten Parameter!
Vielen Dank für die Hilfe!
Gruß
Clemens
Geniale Idee mit dem Punkt als ersten Parameter!
Vielen Dank für die Hilfe!
Gruß
Clemens

