mschaedler1982
Goto Top

Eine Datei in einen unbekanntes Unterverzeichnis kopieren

Hallo zusammen.

Ich sitze hier vor einem Problem und das bekomme ich nicht gelöst.

Ich möchte aus einem bestimmten Verzeichnis C:\ugwork\ die Datei return.dat kopieren.
Das Zielverzeichnis soll C:\ugwork\NdfWork\%%%%%_NdfWork\ die Prozentzeichen stehen für 5 Zahlen die sich immer wieder ändern.

Das bedeutet die return.dat Datei soll eine Ebene weiter nach unten kopiert werden.
Hat da jemand zufällig ein passendes Skript dazu?

Danke vorab!

Content-ID: 240830

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

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

Forseti2003
Forseti2003 13.06.2014 um 12:02:21 Uhr
Goto Top
Mit dem Befehl MOVE kannst Du in einem Skript Dateien selektieren und verschieben lassen.
Die Frage wäre jetzt nur, wie sich die fünf Zeichen aus Deiner Ordnerstruktur abbilden, wenn Du diese als Variable abfangen kannst, kannst Du als Ziellaufwerk den Unterordner ergänzen.
Gersen
Lösung Gersen 13.06.2014 aktualisiert um 14:55:06 Uhr
Goto Top
Hallo,

etwa so:

for /F %i in ('dir /B /A:D "C:\ugwork\NdfWork\?????_NdfWork"') do xcopy "C:\ugwork\return.dat" "C:\ugwork\NdfWork\%i\" /C /Y /Q  

Gruß,
Gersen
Kangaroojack
Lösung Kangaroojack 13.06.2014 aktualisiert um 14:55:11 Uhr
Goto Top
Hallo,

wenn es unter C:\ugwork\NdfWork nur das eine Unterverzeichnis gibt, könntest du es damit umsetzen. Gibt es dort allerdings mehrere Verzeichnisse, wird es mit meinem Code hier nicht klappen.

@echo off
for /f "delims=" %%a in ('dir "C:\ugwork\NdfWork" /ad /b') do @set MY_ENV_VAR=%%a  
move /Y "C:\ugwork\return.dat" "C:\ugwork\NdfWork\%MY_ENV_VAR%"  
mschaedler1982
mschaedler1982 13.06.2014 um 13:24:18 Uhr
Goto Top
Danke Kangaroojack!

Ich hab es so umgesetzt, wie du es angegeben hast. Dadurch das ich die return.dat verschiebe muss ich sie quasi an einer zweiten Stelle vorhalten. So schaut es final aus.

@echo off
taskkill /IM /f ugraf.exe
for /f "delims=" %%a in ('dir "C:\ugwork\NdfWork" /ad /b') do @set MY_ENV_VAR=%%a
move /Y "C:\ugwork\return.dat" "C:\ugwork\NdfWork\%MY_ENV_VAR%"
copy C:\ugwork\NdfWork\return.dat C:\ugwork /Y
Gersen
Gersen 13.06.2014 um 13:53:56 Uhr
Goto Top
Die Quelle Deines Kopierbefehls ist aber nicht das Ziel Deines Verschiebens, ja? - D.h., Du kopierst nicht die Datei zurück, die Du verschoben hast.

Warum ersetzt Du nicht das "move" in Deinem Skript durch "copy" und sparst Dir damit die letzte Zeile...? *rumwunder*
mschaedler1982
mschaedler1982 13.06.2014 um 14:17:32 Uhr
Goto Top
Ja das hab ich versucht move durch copy ersetzt, aber das tut nicht.
Gersen
Gersen 13.06.2014 um 14:27:20 Uhr
Goto Top
Hast Du mal die oben gepostete Zeile probiert?
mschaedler1982
mschaedler1982 13.06.2014 um 14:48:28 Uhr
Goto Top
Jetzt ja! Hat auch funktioniert. Danke dir!