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

Printed on: April 26, 2024 at 00:04 o'clock

Member: Iwan
Iwan Oct 17, 2008 at 11:31:47 (UTC)
Goto Top
hallo,

wenn die .EXE von dem Stick ausgeführt wird, hilft vielleicht %CD% weiter
%CD% gibt den aktuellen Pfad und Ordner aus
Member: Sangeorgean
Sangeorgean Oct 17, 2008 at 11:45:33 (UTC)
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
Member: ArminWeinmann
ArminWeinmann Oct 17, 2008 at 12:31:08 (UTC)
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
Member: Biber
Biber Oct 17, 2008 at 14:05:25 (UTC)
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?
Member: Sangeorgean
Sangeorgean Oct 18, 2008 at 07:49:21 (UTC)
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
Member: Sangeorgean
Sangeorgean Oct 18, 2008 at 08:11:27 (UTC)
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