julianb

Speicherort der Batchdatei auslesen

Ich versuche den Speicherort einer Batchdatei auszulesen.

Hallo zusammen,

hatte schon lange vor mich hier anzumelden, jetzt musste es sein. Folgendes Problem quält mich:

Ich habe eine Batchdatei, diese wird auf verschiedenen Rechnern, je nach Benutzer an verschiedenen Speicherorten angelegt und später vom Desktop via Verknüpfung aufgerufen. Ich weiß nie genau wo diese Batchdatei später liegen wird. Die Aufgabe der Batchdatei ist es, Dateien vom Netzwerk in das Verzeichnis zu kopieren, in welcher die Batchdatei selbst liegt. Dazu muss ich allerdings herausfinden, in welchem Verzeichnis sie denn nun genau liegt. Und ich weiß nicht wie,...gibt es eine Möglichkeit, durch einen Befehl oder ähnliches in der Batch selbst den eigenen Speicherort herauszufinden?

Als Beispiel (klingt doch recht verworren oben):

Rechner1: Batch liegt in C:\User\Data\Ordner1
Rechner2: Batch liegt in Z:\Data\dwwd\Copy
Rechner3: Batch liegt in X:\Ordner\Ordner2\temp

So nun muss ich den Pfad rausbekommen der zu meiner Batch führt. Ein Aufruf meines Skripts sieht zum Beispiel so aus:

C:\Programme\Support Tools>C:\dev\XXXX\Temp\test.bat

Ein CD oder CHDIR gibt mir jetzt "C:\Programme\Support Tools" zurück, ich aber MUSS das hier wissen "C:\dev\XXXX\Temp"

Ich hoffe es ist verständlich.

LG, Julian
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen
Kommentar vom Moderator Biber am 02.08.2009 um 17:13:17 Uhr
Titel bearbeitet.
Originaltitel war "Speicherort der Batchdatei auslesen, nur wie?" - den habe ich gekürzt.
Diese "..., nur wie?" / "..., aber womit?" / ".., aber richtig!" -Anhängsel hebt Euch bitte für Diskussionen mit Vertreibern glutenfreier Bandscheibenmassageöle auf oder für F.D.P.-Landesparteitage.
In "Batch & Shell" sind solche Hingucker-Phrasen entbehrlich.

Content-ID: 121781

Url: https://administrator.de/forum/speicherort-der-batchdatei-auslesen-121781.html

Ausgedruckt am: 01.06.2025 um 18:06 Uhr

godlie
godlie 31.07.2009 um 16:06:57 Uhr
Goto Top
Hallo,
sorry hab den letzen satz übersehen mal einen moment....

sodala

also mit echo %0 bekommst du den aufrufenden Pfad face-smile
Pjordorf
Pjordorf 31.07.2009 um 16:13:04 Uhr
Goto Top
Hallo,

auf den Desktop des Anwenders mit \\pc\c$\dokument....\desktop gehen und dir die verknüpfungeeigenschaften anzeigen lassen. Dann hast du den Pfad erstmal WO die Batchdatei gespeichert ist.

Warum nicht die Batchdatei auf dem Server abgelegt und von dort mittels verknüpfung auf den desktop Öffnen. dann weist du IMMER wo deine Batchdatei gespeichert ist.

Peter
godlie
godlie 31.07.2009 um 16:15:53 Uhr
Goto Top
Ähm ein wenig aufwendig oder?
vorallem wie willst du das innerhalb einer bat machen?
paulepank
paulepank 31.07.2009 um 16:22:02 Uhr
Goto Top
Hallo Julian,

%~dp0 wird wohl das sein was du suchst.

echo %~dp0
würde bei deinem Bsp c:\dev\xxxx\temp\ ausgeben.

cu paulepank
Seardan
Seardan 31.07.2009, aktualisiert am 18.10.2012 um 18:38:54 Uhr
Goto Top
Hallo,

wie sieht es den mit dieser Anleitung aus:

Aktuellen Pfad der CMD - Batch auslesen und als Variable übergeben

Sollte es jawohl sein.

Andreas
bastla
bastla 31.07.2009 um 16:37:42 Uhr
Goto Top
@Seardan
In dieser Anleitung wird beschrieben, wie der aktuelle Pfad gefunden wird - dieser muss keineswegs mit dem Speicherort der Batchdatei übereinstimmen - Beispiel: Die Batchdatei "Kopiere.cmd" liegt in "C:\Utils" und wird von der Kommandozeile aus wie folgt gestartet:
D:\Test>C:\Utils\Kopiere Parameter1 Parameter2
Der aktuelle Pfad (%cd%) bleibt, solange er nicht durch den Batch verändert wird, "D:\Test", während das angesprochene "%~dp0" als Ergebnis "C:\Utils\" liefert.

In einer Verknüpfung kann ebenfalls per "Ausführen in" ein anderer "aktueller Pfad" für den Batch vorgegeben werden.

Grüße
bastla
paulepank
paulepank 01.08.2009 um 08:20:49 Uhr
Goto Top
Hallo godlie,

also mit echo %0 bekommst du den aufrufenden Pfad

1. dem ist nicht so.
2. ist es schlechter Stil, seinen eigenen Beitrag Stunden später mit Erkenntnissen zu editieren, die
zudem auch noch falsch sind und niemand davon benachrichtigt wird........
3. ..... es sei denn, man sieht mal nach ob Julian den Beitrag als gelöst markiert hat. face-smile

cu paulepank
JulianB
JulianB 12.08.2009 um 10:42:43 Uhr
Goto Top
Hallo Zusammen,

entschuldigung das ich mich erst jetzt melde. Hatte ne Woche Urlaub. Erst einmal vielen vielen Dank für die vielen hilfreichen Antworten. Die Lösung mittels "%~dp0" hats im endeffekt gebracht. Genau danach hatte ich gesucht!

Echt richtig super, danke!

Liebe Grüße, Julian
kai-schwab
kai-schwab 07.12.2017 um 13:16:38 Uhr
Goto Top
STARK!!!
Das ist genau das was ich suchte.
VIELEN VIELEN Dank!!! face-kiss