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-Key: 190290

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

Printed on: April 19, 2024 at 18:04 o'clock

Member: b11ck
b11ck Aug 28, 2012 at 08:47:06 (UTC)
Goto Top
Vielleicht so?

cd..
cd daten

Gruss
Member: Blackeye
Blackeye Aug 28, 2012 at 09:45:21 (UTC)
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\
Member: bastla
bastla Aug 28, 2012 updated at 21:46:29 (UTC)
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
Member: Blackeye
Blackeye Aug 28, 2012 at 13:04:05 (UTC)
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
Member: bastla
bastla Aug 28, 2012 updated at 13:42:27 (UTC)
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
Member: pieh-ejdsch
pieh-ejdsch Aug 28, 2012 updated at 13:42:38 (UTC)
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
Member: Biber
Biber Aug 28, 2012 updated at 19:46:49 (UTC)
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