Alternate 4

DOS-Script Ausführungsverzeichnis

Wolfgang359

Ensign
Registriert
Nov. 2008
Beiträge
198
Hallo,
spezielle Frage zu Variablen in einer bat-Datei.

Wenn ich als User eine bat-Datei starte bekomme ich als Inhalt der Variablen %cd% das Verzeichnis in der die bat-Datei gestartet wurde.
Wenn ich als Administrator diese bat-Datei starte bekomme ich immer c:\windows\system32 egal von wo die bat-Datei gestartet wird.
Frage:
Wie komme ich nun trotzdem zu dem Verzeichnis in dem die bat-Datei steht die gerade ausgeführt wird?

Danke!
Wolfgang
 
Du startest die Batch als Administrator, das heißt, der Standardpfad in der Kommandozeile wechselt zu "C:\Windows\system32". Deshalb zeigt die Datei auch das Verzeichnis als "Current Directory" an. :)
 
Hallo,

ich habe mal den entsprechenden Teil aus dem Link unten gepostet:

Mit Hilfe der Variablen %0 lässt sich der Dateiname der Batchdatei so wie er in der Befehlszeile angegeben wurde, abfragen (z.B. mit/ohne absolutem/relativem Pfad, mit/ohne Erweiterung etc.), d.h. %0 enthält exakt die Befehlszeile aber ohne Parameter.
Falls die Batchdatei aus dem Explorer heraus mit Doppelklick gestartet wurde, beinhaltet %0 den Datei-namen mit komplettem (absolutem) Pfad (z.B. c:\windows\test.cmd); mit %0\.. lässt sich der Dateiname aus dem Pfad herauslösen (z.B. c:\windows).
Um den Dateinamen mit vollständigem Pfad unabhängig vom Aufruf der Batchdatei zu ermitteln kann „%~f0“ verwendet werden

siehe:

http://www.admini.de/batch-infos.htm


Ich hoffe das hilft :cool_alt:
 
Ich möchte anmerken, dass moderne Windowsversionen kein DOS mehr beinhalten. Was du meinst ist die NT Konsole.
 
Danke für eure Info.
Ich habe der Einfachheit halber %~dp0 getestet und das funktioniert.
Auch die Infos von Tygran notiere ich mir in meiner eigenen Script-Hilfe-Datei.
Besten Dank!
Wolfgang
 
Zurück
Oben