julianb
Goto Top

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
Kommentar vom Moderator Biber am Aug 02, 2009 um 15: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-Key: 121781

Url: https://administrator.de/contentid/121781

Printed on: April 24, 2024 at 17:04 o'clock

Member: godlie
godlie Jul 31, 2009 at 14:06:57 (UTC)
Goto Top
Hallo,
sorry hab den letzen satz übersehen mal einen moment....

sodala

also mit echo %0 bekommst du den aufrufenden Pfad face-smile
Member: Pjordorf
Pjordorf Jul 31, 2009 at 14:13:04 (UTC)
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
Member: godlie
godlie Jul 31, 2009 at 14:15:53 (UTC)
Goto Top
Ähm ein wenig aufwendig oder?
vorallem wie willst du das innerhalb einer bat machen?
Member: paulepank
paulepank Jul 31, 2009 at 14:22:02 (UTC)
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
Member: Seardan
Seardan Jul 31, 2009, updated at Oct 18, 2012 at 16:38:54 (UTC)
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
Member: bastla
bastla Jul 31, 2009 at 14:37:42 (UTC)
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
Member: paulepank
paulepank Aug 01, 2009 at 06:20:49 (UTC)
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
Member: JulianB
JulianB Aug 12, 2009 at 08:42:43 (UTC)
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
Member: kai-schwab
kai-schwab Dec 07, 2017 at 12:16:38 (UTC)
Goto Top
STARK!!!
Das ist genau das was ich suchte.
VIELEN VIELEN Dank!!! face-kiss