Gast JulianB Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 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
robotto7831a Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Hallo, versuch es mal mit "chdir". Frank
Gast JulianB Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 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
robotto7831a Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Gib in der Dos Box chdir ohne Parameter ein und schaue was passiert. Frank
Gast JulianB Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 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
robotto7831a Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Ich bin jetzt davon ausgegangen, dass man sich auch in dem Verzeichnis befindet wo die Batchdatei liegt und Du halt dynamsich dieses Verzeichnis ermitteln möchtest. Frank
Gast JulianB Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 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
getCppKenntnisse() Geschrieben 5. August 2009 Geschrieben 5. August 2009 hi JulianB, wie wäre es damit: @echo off echo "Das ausgefuehrte Skript ist:" echo %0 den String dann beschnibbeln wie du es gerne hättest. mfg
Gast JulianB Geschrieben 12. August 2009 Geschrieben 12. August 2009 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden