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 Zitieren
robotto7831a Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Hallo, versuch es mal mit "chdir". Frank Zitieren
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 Zitieren
robotto7831a Geschrieben 31. Juli 2009 Geschrieben 31. Juli 2009 Gib in der Dos Box chdir ohne Parameter ein und schaue was passiert. Frank Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
Empfohlene Beiträge
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.