Batchdatei, Laufwerk der Datei

Diskutiere Batchdatei, Laufwerk der Datei im Andere Betriebssysteme Forum im Bereich Weitere Betriebssysteme; Hallo Forum, ich habe eine Batchdatei auf meinem USB Stick. Ich benötige jetzt für mein Bat-Skript den Laufwerksbuchstaben, auf dem die...
G

glencairn

Gast
Hallo Forum,

ich habe eine Batchdatei auf meinem USB Stick. Ich benötige jetzt für mein Bat-Skript den Laufwerksbuchstaben, auf dem die Batchdatei liegt. Da mein USB Stick an unterschiedlichen Rechnern unterschiedliche Laufwerksbuchstaben hat und ich nicht unter der Systemeinstellung dem USB Stick einen festen Buchstaben zuweisen möchte, ist es für mich notwendig den Laufwerksbuchstaben der Batchdatei (Speicherort) zu bekommen.

Mit echo %0 bekomme ich nur den Skriptnamen. Aber ich benötige in einer Variablen (möglichst DOS-Standard) den Buchstaben. Also das Ergebnis "t:", vielleicht weiß jemand einen Trick mit Windows Boardmitteln.

Schönen Sonntag.
Jörg Peter
 

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
11.132
Das sollte funktionieren solange es nur ein USB- oder anderes austauschbares Laufwerk gibt. (nach Prof. Timo Salmis Zusammenstellung)
Leider hast Du nicht angegeben, unter welchem Windows das laufen soll; es kann also evtl. nicht funktionieren. Ich hab's unter XP getestet.

Code:
@echo off & setlocal enableextensions enabledelayedexpansion
  for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    %comspec% /c if exist %%d:\ (
      fsutil fsinfo drivetype %%d:|find "Austauschbares Laufwerk">nul
      if !errorlevel! EQU 0 set usbletter=%%d
    )
  )
  echo USB found on drive %usbletter%:
  endlocal & goto :EOF


Nachtrag: der angegebene Link funktioniert bei mir leider nicht. Aber auch andere Dateien dort kann ich nicht laden (als aktuelle Version wird dort tscmd49f.zip angeboten)
Kann aber auch an meinen Sicherheitseinstellungen liegen.
 
Zuletzt bearbeitet:

HaraldL

Dabei seit
26.07.2006
Beiträge
5.980
Ort
Niederbayern
"Nur ein austauschbares Laufwerk" ist inzwischen eher problematisch. Ich löse sowas eher mit einer individuell benannten (leeren) Textdatei und einer ähnlichen Schleife wie im obigen Beispiel, jedoch mit der Suche per IF EXIST nach diesem Dateinamen der nur auf dem Stick vorkommt.
 
G

glencairn

Gast
Hallo,

dank für die Batchdatei. Es soll unter Windows 2000,XP und Vista laufen. Bei Vista heißen die Laufwerke dann Wechseldatenträger. Wenn ich das o. g. bei mir Starte kommt nur die Meldung "USB found on drive :".

Wenn ich zwei USB Sticks am Rechner habe, würde er dann beide finden, nicht den Laufwerksbuchstabe von wo ich die Batchdatei gestartet habe. Oder sehe ich das falsch?

Grüße
Jörg Peter
 
G

glencairn

Gast
"Nur ein austauschbares Laufwerk" ist inzwischen eher problematisch. Ich löse sowas eher mit einer individuell benannten (leeren) Textdatei und einer ähnlichen Schleife wie im obigen Beispiel, jedoch mit der Suche per IF EXIST nach diesem Dateinamen der nur auf dem Stick vorkommt.

D. h. ich würde das so lösen?

if exist a:\meinebatch.bat set lw="a:"
if exist b:\meinebatch.bat set lw="b:"
if exist c:\meinebatch.bat set lw="c:"
.
.
.
if exist z:\meinebatch.bat set lw="z:"
if %lw%=="" echo "Meine Batchdatei ist nicht da"

Gruß
Jörg Peter
 
G

glencairn

Gast
Hi,

habe gerade gesehen, unter Vista gibt "echo %0" mein Skript mit Laufwerksbuchstabe zurück, also "f:\meinskript.bat" und jetzt muesste ich das "f:" da noch rausbekommen. Wie ist das bei XP und Windows 2000, kann das noch einer für mich prüfen?

Gruß
Jörg Peter
 

HaraldL

Dabei seit
26.07.2006
Beiträge
5.980
Ort
Niederbayern
Genau. Entweder mit ganz vielen Zeilen für die Laufwerksbuchstaben oder mit einer FOR-Schleife ähnlich dem Beispiel von automatthias. Von den Laufwerken würde ich bei C: beginnen, A/B sind mögliche Diskettenlaufwerke, die rattern sonst beim Zugriff wenn jemand welche hat.
 
G

glencairn

Gast
Hallo.

Meine Lösung sieht jetzt so aus:

@echo off
set str=%0
rem echo.%str%
set str=%str:~1,3%
echo Startlaufwerk: %str%
pause

Muss jetzt nur noch wissen, ob unter Windows XP und 2000 auch %0 der Skriptname inkl. Laufwerk ist.

Gruß
Jörg Peter

P.S. Habe mich hier schlau gemacht.
 

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
11.132
Also unter XP zeigt echo %0 nur den Namen ohne LW.

Probier doch mal das:
Code:
for /f " usebackq delims==" %x in ( `cd` ) do @echo %~dx
 
G

glencairn

Gast
Hi,
also es ist ein Unterschied, ob ich meine Batchdatei über den Explorer starte oder über START-AUSFÜHREN-CMD und dann die Batchdatei aufrufe. Im ersten Fall wird der Laufwerksbuchstabe und die Datei ausgegeben (bei echo %0) und im zweiten Fall nur der Dateiname.

@automatthias, wenn ich Dein Beispiel ausprobiere, so erhalte ich die Fehlermeldung:

"~dx" kann syntaktisch an dieser Stelle nicht verarbeiten werden.

Gruß
Jörg Peter
 

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
11.132
Hi,
@automatthias, wenn ich Dein Beispiel ausprobiere, so erhalte ich die Fehlermeldung:

"~dx" kann syntaktisch an dieser Stelle nicht verarbeiten werden.

Innerhalbe einer Batchdatei muss man %% vor die Variablen setzen; von der Kommandozeile nur ein %
 
Thema:

Batchdatei, Laufwerk der Datei

Batchdatei, Laufwerk der Datei - Ähnliche Themen

Upgrade auf 1803 mit "systemprofile/desktop"-Fehler: Hallo Microsoft-Support, Nach einem Tweet meinerseits () wurde ich prompt vom freundlichen Social-Media-Team angeschrieben und mir wurde eine...
GELÖST Umlaute bei der Ausführung einer Batch-Datei richtig anzeien: Hallo Ich beschäftige mich seit einer Weile mit Batch-Scripten und jeder, der das auch tut oder getan hat, kennt das nervige Problem, dass der...
WIKI - Windows 8 Befehle für die Eingabeaufforderung: Daniel Erler: Die Seite wurde neu angelegt == Um bei Windows 8 die meisten Einstellungen vorzunehmen, reicht in der Regel die grafische...
USB Stick-festen Laufwerksbuchstaben: Hallo Ich hoffe, ich bin hier richtig. Ich möchte meinem USB Stick einen festen Laufwerksbuchstaben zuweisen, so das er auch auf anderen System...
Ratgeber: DSL-Router perfekt anschließen: Ihr DSL-Router bildet die Brücke zwischen dem Internet und dem lokalen Netzwerk. Die Geräte bieten umfassende Konfigurations-Möglichkeiten. In...

Sucheingaben

batchdatei laufwerke ermitteln

,

batch datei laufwerksbuchstaben auslesen

,

batchfile ordner suchen mehrere laufwerke

Oben