Zum Inhalt springen

Batch - Lageort des Skriptes feststellen?!


Gast JulianB

Empfohlene Beiträge

Hallo zusammen,

ich wusste nicht genau wohin damit. Also hab ichs mal hierher gepackt.

Meine Frage ist die folgende, ich schreibe gerade ein Batch welches mir aus einem Netzlaufwerk Dateien auf meinen lokalen PC holt. Soweit so gut, das Problem welches ich nun habe ist, das ich die Dateien, welche ich kopieren möchte immer an den Punkt packen will, an welchem die Batchdatei selbst liegt. Dieser Ort ist aber variable, sprich die Batch kann man auf Festplatte C: liegen oder D: oder Z:, aber auch in Ordner1, Ordner2 oder OrdnerABC. Sprich an völlig unterschiedlichen Orten, wie bekomme ich jetzt raus, in welchem Ordner sich meine Batchdatei befindet?

Beispiel:

Rechner1: Batch liegt in C:\User\Data\Ordner1

Rechner2: Batch liegt in Z:\Data\dwwd\Copy

Rechner3: Batch liegt in X:\Ordner\Ordner2\temp

Meine Dateien sollen immer an den Ort gepackt werden, in welchem sich auch die Batch selbst befindet. Dazu muss ich eben diesen Ort feststellen, ihn in einer Variable speichern und die Dateien dann nach Variable X kopieren. Soweit klar, nur wie bekomme ich den Ort raus an dem meine Batch liegt???

Ich steh auf dem Schlauch, bitte helft mir,....

LG, Julian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie soll das denn klappen, ich weiß ja nicht wohin ich wechseln möchte. Ich möchte den Standort der Batchdatei auf meinem lokalen System haben. Sprich wenn die Datei unter: C:\Test\Batchskripts\abc.bat liegt, dann brauche ich einen Befehl welcher mir genau diesen Pfad zurückliefert.

Ich kann das Skript ja durch die komplette Pfadangabe von jedem Ort meines PC's aufrufen, ein einfaches "cd" gibt mir nur das aktuelle Arbeitsverzeichnis zurück, ich brauche aber nicht das Arbeitsverzeichnis, sondern den Speicherort meiner Batchdatei.

LG, Julian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Irgendwie,..nicht das gewünschte:


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

"Ausführen von chdir"

C:\Programme\Support Tools

So sieht meine Ausgabe aus, so meine Bat:

@echo off


echo "Ausführen von chdir"


chdir

Wo ist denn mein Fehler? Als Ausgabe erwarte ich "C:\dev\XXXX\Temp" anstelle von "C:\Programme\Support Tools".

LG, Julian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gut habe ich mich wohl falsch ausgedrückt entschuldigung. Nein der Fall ist halt wie oben beschrieben, ich befinde mich irgendwo, genauso wie das Skript. Ich muss nur rausfinden wo sich das Skript befindet, gibts da ne möglichkeit?

LG und sorry,

Julian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

die Lösung für mein Problem ist die folgende "%~dp0"

Wird also ein Skript aufgerufen, zum Beispiel so:

C:\Utils>D:\Test\CMD\test.bat

bekomme ich mittels "%~dp0" diesen Pfad ausgegeben: D:\Test\CMD

Und das war es was ich wollte. Vielen Dank für eure Hilfe. Hier kann jetzt dichtgemacht werden.

LG, Julian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...