Hallo
Wie kann ich das Verzeichniss finden in dem Die Bat datei liegt? Ich möchte beim Start der Bat datei mit "cd" von " C:\Dokumente und Einstellungen\UserName " in das Verzeichniss der Bat datei wechseln. Hat wer eine Idee?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
was Du willst.
Die Betonung liegt auf "einfach".
Mir ist nicht ganz klar, was Du genau willst, aber eventuell hilft Dir ja die Variable %CD% weiter.
Hallo ich habe eine l.bat Datei im verzeichniss c:\bat und eine 1.txt im selben. Nun starte ich die l.bat und bin im Verzeichniss " C:\Dokumente und Einstellungen\MyUserNameHere ". Nun möchte ich in das Verzeichniss c:\bat wechseln (mit cd) und die 1.txt löschen. Das script soll auch gehen wen ich die .txt .bat nach c:\IrgendEinOrdner verschiebe.
Erkläre das bitte? Falls Du in der Batch Datei selbst keinen Verzeichnisswechsel vornimmst, bist Du immer in dem Verzeichnis, in dem Du Dich zum Zeitpunkt des Batchaufrufes befindest, unabhängig davon ob sich die Datei im aktuellen Verzeichnis oder in einem anderen befindet. In letzteren Fall müsstets Du die Batchdatei natürlich mit voller Pfadangabe starten.
Ansonsten siehe Xafford hinsichtlich %CD%
Examples from Microsoft Windows
[edit] Discrete value variables
These variables generally expand to discrete values, such as the current working directory, the current date, or a random number. Some of these are true environment variable and will be expanded by all functions that handle environment variables. Others, like %CD% simply look like environment variables and will only be expanded by some functions and shells. They are not case sensitive.
%CD%
This variable points to the current directory. Equivalent to the output of the command cd when called without arguments.
http://en.wikipedia.org/wiki/Environment_variable#DOS_and_Windows
Falls ich dein Anliegen richtig verstehe, dann sollte Dir folgendes helfen:
FOR %%i IN ("%0") DO SET SPath=%%~di%%~pi
In %SPath% steht dann der Name des Verzeichnisses in dem deine BAT-Datei liegt.
FOR %%i IN ("%0") DO SET SPath=%%~di%%~pi
cd %SPath%
geht klasse && thx.
Kannst du mir bitte noch die erste Zeile etwas erklären? Gruß
%0 ist die automatisch übergebene Variable bei Scripten, die den Dateinamen des ausgeführten Scripts enthält. Dieses nutzt Du als Satz für den FOR-Befehl, azf welchen dann die Operation im Befehlsteil ausgeführt wird.
Der Befehlsteil "SET SPath=%%~di%%~pi" zerlegt dann %0 in Laufwerksbuchstaben und Pfad, ohne Dateinamen.
%%~di%%~pi liese sich übrigens auch noch abkürzen in %%~dpi. Dann würde die Zeile so lauten:
FOR %%i in ("%0") DO SET SPath=%%~dpi