Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

akutelles Arbeitsverzeichniss (cwd) von Batch Daten finden

malte simon / 7 Antworten / Baumansicht Nickles

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?

bei Antwort benachrichtigen
peterson malte simon „akutelles Arbeitsverzeichniss (cwd) von Batch Daten finden“
Optionen

was Du willst.
Die Betonung liegt auf "einfach".

bei Antwort benachrichtigen
xafford malte simon „akutelles Arbeitsverzeichniss (cwd) von Batch Daten finden“
Optionen

Mir ist nicht ganz klar, was Du genau willst, aber eventuell hilft Dir ja die Variable %CD% weiter.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
malte simon xafford „Mir ist nicht ganz klar, was Du genau willst, aber eventuell hilft Dir ja die...“
Optionen

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.

bei Antwort benachrichtigen
REPI malte simon „Hallo ich habe eine l.bat Datei im verzeichniss c: bat und eine 1.txt im selben....“
Optionen
Nun starte ich die l.bat und bin im Verzeichniss " C:Dokumente und EinstellungenMyUserNameHere "

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
Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
xafford malte simon „Hallo ich habe eine l.bat Datei im verzeichniss c: bat und eine 1.txt im selben....“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
malte simon xafford „Falls ich dein Anliegen richtig verstehe, dann sollte Dir folgendes helfen: FOR...“
Optionen

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ß

bei Antwort benachrichtigen
xafford malte simon „FOR i IN 0 DO SET SPath di pi cd SPath geht klasse thx. Kannst du mir bitte noch...“
Optionen

%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

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen