BATCH - Mit Xcopy relativen Pfad kopieren
Verzeichnisstruktur:
D:\Ordner\datei.dat
D:\Ordner\data\daten1
Ich befinde mich beim Ausführen der BAT-Datei(Batch.bat) im Ordner D:\Ordner
So versuche ich es die ganze Zeit:
Ergebnis:
Windows kopiert die Datei nach:
Ich möchte sie aber in
wie geht das jetzt? Mit absoluten Pfaden würde ich es hinbekommen, ich möchte es jedoch kopierbar & somit relativ halten.
lieben dank
Julia
D:\Ordner\datei.dat
D:\Ordner\data\daten1
Ich befinde mich beim Ausführen der BAT-Datei(Batch.bat) im Ordner D:\Ordner
So versuche ich es die ganze Zeit:
xcopy /Q /C /H /R /Y datei.dat \data\daten1
Ergebnis:
Windows kopiert die Datei nach:
D:\data\daten1
D:\Ordner\data\daten1
wie geht das jetzt? Mit absoluten Pfaden würde ich es hinbekommen, ich möchte es jedoch kopierbar & somit relativ halten.
lieben dank
Julia
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202426
Url: https://administrator.de/contentid/202426
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
Code Tags helfen dir und uns. Wie? Hier zu finden [faq:20#toc-23734360299-28
Dann klappt es mit relativen Pfaden. Und der umgekehrte Schrägstrich am ende sagt deinem XCopy das es sich um einen Ordner handelt, sonst kommt nämlich die Frage ob das Ziel eine Datei oder Verzeichniss ist.
Ein Konsolenfenster (CMS Fenster, DOS Prompt...) und darin ein Dir gemacht. Dort findest du in Unterverzeichnisse immer das Verzeichniss . sowie das Verzeichniss .. Im Wurzel (Root) Verzechniss gibt es diese beiden Verzeichnisse nicht.
Punkt bedeutet aktuelles Verzeichniss
Punkt Punkt bedeutet übergeordnetes Verzeichniss.
Somit geht auch einoder auch einund führt zum gleichen Ergebniss datei.dat kopiert nach D:\Ordner\Data\daten1\datei.dat.
Diese Art der Nutzung ist nicht nur MS eigen. Einige OSe nutzen diese Art der Pfadangaben (. und ..) http://en.wikipedia.org/wiki/Path_(computing)
Gruß,
Peter
Code Tags helfen dir und uns. Wie? Hier zu finden [faq:20#toc-23734360299-28
]
xcopy /Q /C /H /R /Y datei.dat \data\daten1
Windows kopiert die Datei nach: D:\data\daten1
Was auch so korrekt ist weil du es ja so mit deinem XCopy willst (s.o). Dein erster umgekehrter Schrägstrich (Backslash) bedeutet nämlich ROOT oder Wurzel. Hier eben bei dir D:\Ich möchte sie aber in D:\Ordner\data\daten1
Dann nimmxcopy /Q /C /H /R /Y datei.dat .\data\daten1\
Ein Konsolenfenster (CMS Fenster, DOS Prompt...) und darin ein Dir gemacht. Dort findest du in Unterverzeichnisse immer das Verzeichniss . sowie das Verzeichniss .. Im Wurzel (Root) Verzechniss gibt es diese beiden Verzeichnisse nicht.
E:\Ordner>dir
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\Ordner
26.02.2013 20:00 <DIR> .
26.02.2013 20:00 <DIR> ..
26.02.2013 20:04 <DIR> Data
24.05.2011 19:58 412 datei.dat
1 Datei(en), 412 Bytes
3 Verzeichnis(se), 56.983.183.360 Bytes frei
E:\Ordner>
Punkt Punkt bedeutet übergeordnetes Verzeichniss.
Somit geht auch ein
xcopy /Q /C /H /R /Y .\datei.dat ..\ordner\data\daten1\
xcopy /Q /C /H /R /Y datei.dat ..\ordner\data\daten1\
Diese Art der Nutzung ist nicht nur MS eigen. Einige OSe nutzen diese Art der Pfadangaben (. und ..) http://en.wikipedia.org/wiki/Path_(computing)
Gruß,
Peter
Hallo,
Doch, es stimmt genau so. Warum? Lies weiter.
Unterschied der Zeile 1 von Zeile 2 ist nur der Backslasch am Ende. Du solltest bedenken das auch ein xcopy Fehlende / nicht existierende Ordner im Zielpfad anlegen kann. Daher ergeben sich 2 möglichkeiten. Die Ordnerstruktur ist für das Ziel schon vorhanden oder eben nicht.
Im Zeile 1 wird ohne Rückfrage die Ordnerstruktur erstellt da es durch den letzten Backslash ersichtlich ist das das angegebene Ziel ein Ordner ist. Somit erfolgt keine Abfrage ob Ordner oder Datei. Wir schauen ob die Zieldateim im Zielpfad existiert.Und nun das Kopieren mit xcopy ohne Backslasch am Ende
Jetzt das ganze ohne das der Zielpfad ganz oder teilweise existiert. Ein dir liefert schon Fehler Der Ordner daten1 existiert also nicht. Einzeigt es deutlicher. Nun wenden wir den xcopy Befehl an und achten drauf das am ende eben jener Backslasch nicht dran ist und es kommt (wie erwartet) einund durch Eingabe eines V wurde nun auch der korrekte Pfad erzeugt und die Datei dort abgelegt.
Nimmst du ein D (Datei) um dem xcopy zu sagen das das Ziel eine Datei ist, wird eine Datei mit Namen daten1 angelegt. Wie hiererstellt. Ein dir zeigt dir deutlich was passiert istEs wurde also eine Datei mit Namen daten1 erzeugt.
Als Rechner noch langsam waren, war es besser für eine korrekte Umgebung zu sorgen da sonst die Fehlermeldungen einfach zu lange dauerten bis diese von der Diskette (180MB 9" Einseitig) geladen waren. Da stellte sich schon die Frage "Ist das Ziel überhaupt vorhanden, wenn nicht, was dann" Und dein Rechner scheint etwas vorzuhgehen wie dein am Donnerstag ausgerufenes "schönes Wochenende" schon zeigt
Gruß,
Peter
Doch, es stimmt genau so. Warum? Lies weiter.
xcopy /Q /C /H /R /Y datei.dat .\data\daten1\
xcopy /Q /C /H /R /Y datei.dat .\data\daten1
Im Zeile 1 wird ohne Rückfrage die Ordnerstruktur erstellt da es durch den letzten Backslash ersichtlich ist das das angegebene Ziel ein Ordner ist. Somit erfolgt keine Abfrage ob Ordner oder Datei. Wir schauen ob die Zieldateim im Zielpfad existiert.
E:\Ordner>dir .\data\daten1\
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\Ordner\data\daten1
28.02.2013 11:34 <DIR> .
28.02.2013 11:34 <DIR> ..
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 51.235.909.632 Bytes frei
E:\Ordner>
E:\Ordner>xcopy /Q /C /H /R /Y datei.dat .\data\daten1
1 Datei(en) kopiert
E:\Ordner>
Jetzt das ganze ohne das der Zielpfad ganz oder teilweise existiert. Ein dir liefert schon Fehler
E:\Ordner>dir .\data\daten1\
Das System kann die angegebene Datei nicht finden.
E:\Ordner>
E:\Ordner>dir .\data\
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\Ordner\data
28.02.2013 11:43 <DIR> .
28.02.2013 11:43 <DIR> ..
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 51.235.897.344 Bytes frei
E:\Ordner>
E:\Ordner>xcopy /Q /C /H /R /Y datei.dat .\data\daten1
Ist das Ziel .\data\daten1 ein Dateiname
oder ein Verzeichnisname
(D = Datei, V = Verzeichnis)? V
1 Datei(en) kopiert
E:\Ordner>
Nimmst du ein D (Datei) um dem xcopy zu sagen das das Ziel eine Datei ist, wird eine Datei mit Namen daten1 angelegt. Wie hier
E:\Ordner>xcopy /Q /C /H /R /Y datei.dat .\data\daten1
Ist das Ziel .\data\daten1 ein Dateiname
oder ein Verzeichnisname
(D = Datei, V = Verzeichnis)? D
1 Datei(en) kopiert
E:\Ordner>dir .\data\
Datenträger in Laufwerk E: ist Data
Volumeseriennummer: EE85-A833
Verzeichnis von E:\Ordner\data
28.02.2013 11:51 <DIR> .
28.02.2013 11:51 <DIR> ..
25.12.2012 21:40 1.441 daten1
1 Datei(en), 1.441 Bytes
2 Verzeichnis(se), 51.235.889.152 Bytes frei
E:\Ordner>
Oder habe ich da irgendetwas komplett falsch verstanden?
Die wirkungsweise von xcopy oder wie jemand hier immer zu sagen pflegt "Das was die Redmonder Praktikantinnen wieder zusammen geschrubt haben"Als Rechner noch langsam waren, war es besser für eine korrekte Umgebung zu sorgen da sonst die Fehlermeldungen einfach zu lange dauerten bis diese von der Diskette (180MB 9" Einseitig) geladen waren. Da stellte sich schon die Frage "Ist das Ziel überhaupt vorhanden, wenn nicht, was dann" Und dein Rechner scheint etwas vorzuhgehen wie dein am Donnerstag ausgerufenes "schönes Wochenende" schon zeigt
Gruß,
Peter