sangeorgean
Goto Top

USB Stick aktuellen Laufwerksbuchstaben auslesen

Hallo Ihr Lieben,

in Batch mit "%~d0" kann man ja den aktuellen Laufwerksbuchstaben auslesen was soweit ok ist.

Ich habe das Problem nachdem ich die .bat zu .exe compiliere (habe mehrere freeware Programme ausprobiert, denke nicht das es daran liegt), erkennt "%~d0" nur noch laufwerk C: .


Über jegliche Hilfe würde ich mich sehr freuen


VG

Adrian

Content-Key: 99560

Url: https://administrator.de/contentid/99560

Ausgedruckt am: 23.04.2024 um 14:04 Uhr

Mitglied: Iwan
Iwan 17.10.2008 um 13:31:47 Uhr
Goto Top
hallo,

wenn die .EXE von dem Stick ausgeführt wird, hilft vielleicht %CD% weiter
%CD% gibt den aktuellen Pfad und Ordner aus
Mitglied: Sangeorgean
Sangeorgean 17.10.2008 um 13:45:33 Uhr
Goto Top
Vielen Dank für die rasche Antwort... Als Ausgabe bekomme ich E:\ ich bräuchte aber nur E: für meinen Proggi.

Gibt es da eine Möglichkeit nur die ersten 2 Zeichen in die Variable zu übergeben?


VG

Adrian
Mitglied: ArminWeinmann
ArminWeinmann 17.10.2008 um 14:31:08 Uhr
Goto Top
Hallo Adrian,

ich vermute es liegt daran, dass die BAT --> EXE Konverter (jedenfalls die die ich ausprobierte) die Batchdatei lediglich einpacken und beim ausführen ins Temp-Verzeichnis des Rechners extrahieren und dort starten. In dem Fall wird dann vermutlich immer C: gefunden werden da Temp meist auf C: liegt.

Hilft dir wahrscheinlich nicht bei der Lösung des Problems, aber vielleicht zum Verständnis...


Gruss Armin
Mitglied: Biber
Biber 17.10.2008 um 16:05:25 Uhr
Goto Top
Moin Sangeorgean,

es gibt mehrere Möglichkeiten, Deinen String "E:\" per Batch zu kürzen auf die ersten 2 Zeichen oder das Zeichen "\" durch "nichts" zu ersetzen oder oder oder.

Aber falls Du dieses "E:\" wirklich aus der Variable %CD% holst, dann hast Du keinen abschließenden "\".

>echo %cd%
D:\temp
for %i in ("%CD%") do @echo %~di  
D:

Sonst poste bitte die anderthalb Zeilen mit "Ermittlung" des Lw-Buchstabens bis inklusive Verwendung im Befehl, in dem Du den brauchst.

Grüße
Biber

P.S. WTF benutzt ihr so gerne einen Batch2Exe-Blender, bevor der eigentliche Batch funktioniert?
Mitglied: Sangeorgean
Sangeorgean 18.10.2008 um 09:49:21 Uhr
Goto Top
Hallo Bieber,

das ist genau was ich brauche. Der Rest liegt nun an meiner Unwissenheit ;O)..


Ich bräuchte statt dem do @echo %%~di , in einem:


Vom loginschen so, aber es funktioniert nicht:

for %%i in ("%CD%") do @set "l=%%~di"
echo %l%

Also das ich den Laufwerksbuchstaben ohne "\" in einer Variable habe...


Vielen Dank schon mal im Vorraus

Adrian
Mitglied: Sangeorgean
Sangeorgean 18.10.2008 um 10:11:27 Uhr
Goto Top
Erstmal möchte ich mich bei Euch für die super Ideen bedanken.

Wenn Ihr in der nähe seit gehem wir mal einen Bier trinken. .. Ich find Eure schnelle Hilfe einfach nur klasse.

Ich habe mit Hilfe von Bieber es rausgefunden:


for /F "eol=# delims=#" %%i in ("%CD%") do @set "z=%%~di"

echo %z%


Die %z% Variable beinhaltet nun den Laufwerksbuchstaben ohne "\" und es macht keine Probleme bei compilieren zu .exe.

Wünsche Euch noch ein schöne WE


VG

Adrian