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

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

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

Member: Forseti2003
Forseti2003 Jun 13, 2014 at 10:02:21 (UTC)
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.
Member: Gersen
Solution Gersen Jun 13, 2014 updated at 12:55:06 (UTC)
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
Member: Kangaroojack
Solution Kangaroojack Jun 13, 2014 updated at 12:55:11 (UTC)
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%"  
Member: mschaedler1982
mschaedler1982 Jun 13, 2014 at 11:24:18 (UTC)
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
Member: Gersen
Gersen Jun 13, 2014 at 11:53:56 (UTC)
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*
Member: mschaedler1982
mschaedler1982 Jun 13, 2014 at 12:17:32 (UTC)
Goto Top
Ja das hab ich versucht move durch copy ersetzt, aber das tut nicht.
Member: Gersen
Gersen Jun 13, 2014 at 12:27:20 (UTC)
Goto Top
Hast Du mal die oben gepostete Zeile probiert?
Member: mschaedler1982
mschaedler1982 Jun 13, 2014 at 12:48:28 (UTC)
Goto Top
Jetzt ja! Hat auch funktioniert. Danke dir!