blackeye
Goto Top

Verzeichniswechsel in Batchverarbeitung

Hallo zusammen,

ich versuche eine Installation über eine Batchverarbeitung zu erreichen. Das Problem ich muss über die Batch in dem Verzeichnis einen Ordner zurück springen.
In meinem Beispiel liegt die batch im Verzeicnis D:\Daten\Installation und die Daten zum kopieren etc. D:\Daten\Daten.

Da ich das Script flexiebel halten möchte müsste alles mit Variabeln passieren,

Blackei

Content-ID: 190290

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

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

b11ck
b11ck 28.08.2012 um 10:47:06 Uhr
Goto Top
Vielleicht so?

cd..
cd daten

Gruss
Blackeye
Blackeye 28.08.2012 um 11:45:21 Uhr
Goto Top
Hi,

ich glaube nicht das es klappt. Zur Zeit sieht das so aus:

Die Batch befindet sich im Ordner Z:\Computer\Installation\


COPY %CD%\Dateien\Desktop\´xyz_FO~1\*.* D:\DATEN\Formulare\

Der reale Pfad für die Daten würde so aussehen:

Z:\Computer\Dateien\Desktop\
bastla
bastla 28.08.2012 aktualisiert um 23:46:29 Uhr
Goto Top
Hallo Blackeye!

Du kannst ohne Weiteres ".." in den Pfad einbauen - also etwa
copy "%~dp0..\Daten\*.*" "D:\DATEN\Formulare"
um vom Ort der Batchdatei auszugehen oder
copy "..\Daten\*.*" "D:\DATEN\Formulare"
um sich auf den aktuellen Ordner (also %CD%) zu beziehen ...

Grüße
bastla
Blackeye
Blackeye 28.08.2012 um 15:04:05 Uhr
Goto Top
Hi,

das würde aber doch bedeuten das ich das Script nur aus dem root starten kann und nicht etwa vom Desktop.
Ich müsste es nur schaffen, in der Topologie ein Verzeichnis nach Oben zu springen. Wenn das nicht klappt, werde ich das Script einfach umnbauen um so vom Script nur tiefer ins Verzeichnis springen zu müssen.

Grüße
Blackeye
bastla
bastla 28.08.2012 aktualisiert um 15:42:27 Uhr
Goto Top
Hallo Blackeye!
das würde aber doch bedeuten das ich das Script nur aus dem root starten kann und nicht etwa vom Desktop.
Falsch; ".." bedeutet: "das Verzeichnis oberhalb"
Ich müsste es nur schaffen, in der Topologie ein Verzeichnis nach Oben zu springen.
Nur nach oben geht's mit
copy "%~dp0..\*.*" "D:\DATEN\Formulare"
- mein Vorschlag war von Deinem Beispiel und der Annahme, dass das Quellverzeichnis "neben" dem Batch-Ordner liegen würde, ausgegangen ...

Grüße
bastla
pieh-ejdsch
pieh-ejdsch 28.08.2012 aktualisiert um 15:42:38 Uhr
Goto Top
moin Blackeye,

ich weis zwar nicht was Du siehst, aber wenn
ich glaube nicht das es klappt.
und
das würde aber ...
einen richtigen Test in einer Batch vorziehst - wird wohl nix daraus werden. Hier beruht alles auf Fakten.
Die Beiden Angebote stossen genau auf das gewünschte Verzeichnis.

zum weiteren Test in der CMD-Line
for /d %i in (..\*) do echo %i

Gruß Phil
Biber
Biber 28.08.2012 aktualisiert um 21:46:49 Uhr
Goto Top
Moin Blech-Ei,

Is' ja mal 'ne interessante Variante, bei einem Skript von bastla zu kontern:
"..ich glaub nicht, dass das funktioniert..."

Ich empfehle dir auch erst mal den proof-of-concept am CMD-Prompt durchzukaspern.

Ergänzend zu Phils kleiner Demo vielleicht noch dieses Beispiel in folgendem Szenario:
  • CMD-Prompt.
  • Ich war auf meinem Laufwerk D: im Verzeichnis D:\temp
  • und jetzt auf Laufwerk Y: in Unterverzeichnis Y:\Eigene Dateien\Biber

Von da die Demo. Erste Halbzeile nach dem ">" ist der abgeschickte Befehl.
Y:\Eigene Dateien\Biber>for /d %i in (D:.. D: Y: Y:..) do @echo %~fi
d:\
d:\temp
Y:\Eigene Dateien\Biber
Y:\Eigene Dateien

Damit solltest du die Unterschiede zwischen "aktuellem Verzeichnis" und "Ein Verzeichnis über dem aktuellen Verzeichnis" verstehen.

Grüße
Biber