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:
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
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
Please also mark the comments that contributed to the solution of the article
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.
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
9 Comments
Latest comment
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
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
Hallo,
wie sieht es den mit dieser Anleitung aus:
Aktuellen Pfad der CMD - Batch auslesen und als Variable übergeben
Sollte es jawohl sein.
Andreas
wie sieht es den mit dieser Anleitung aus:
Aktuellen Pfad der CMD - Batch auslesen und als Variable übergeben
Sollte es jawohl sein.
Andreas
@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:
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
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
In einer Verknüpfung kann ebenfalls per "Ausführen in" ein anderer "aktueller Pfad" für den Batch vorgegeben werden.
Grüße
bastla
Hallo godlie,
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.
cu paulepank
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.
cu paulepank