[BATCH] Dateien suchen, verschiben in bestehende Ordnerstruktur

flob

New member
4 Juni 2013
2
0
Hallo liebe Gemeinde,

zum Thema Batch konnte ich einiges finden und auch viele Posts, die in die Richtung gehen. So ganz ist mir die Lösung aber nicht erschienen.

Zur Problemstellung:

Die datei.txt muss vom Verzeichnis
D:/daten/data/nutzer/datei.txt

in das Verzeichnis
D:/daten/data/system/

Das Ganze muss ziemlich oft passieren, aber die Struktur ist vorhanden.

Ich suche die datei mit der for-schleife
Code:
for /r "D:\daten\" %%i in (datei.txt) do (

Code:
Zielpfad erstellen

und habe einen Befehl für das bewegen

Code:
move %%i %pfad%

Problem ist also die Erstellung des Zielpfades, der zum gefundenen pfad sehr ähnlich ist, bzw. genauso aufgebaut ist.

nochmal:
von
\Config\System\COMMON\ordner\data
nach
\Config\User\COMMON\ordner\data


Ich hoffe Ihr könnt mir helfen...

Vielen Dank schonmal!
 
Geht vermutlich ohne Batch:
move \Config\System\COMMON\ordner\data\* \Config\User\COMMON\ordner\data

Hier jetzt halt mit *, um alle Dateien im Verzeichnis abzugreifen.
 
... Hier jetzt halt mit *, um alle Dateien im Verzeichnis abzugreifen.

command bzw cmd habe ich schon 'ne gefühlte Ewigkeit nicht mehr für solche Aktionen bemüht, ich bin nicht sicher ob die Endungen auch mit erfaßt werden. Falls * nicht reicht: mit *.* nachhelfen.
 
* is alles :yes:
*. brauchst du nur, um bestimmte Dateitypen zu kriegen, z.B. *.jpg oder auch Suffix- und Präfixe im Dateinamen zu berücksichtigen, z.B. backup_*.txt oder picture*.jpg

Das *.* kommt noch aus der Windows 3.1-Zeit, wo das immer so hübsch im Dateiauswahl-Dialog angezeigt wurde.
 
also der Unterschied zwischen * und *.* ist der, dass bei *.* ein Punkt im Dateinamen sein muss und bei * eben nicht.
Es sind ja auch Dateinamen ohne Dateiendung möglich...
 
also der Unterschied zwischen * und *.* ist der, dass bei *.* ein Punkt im Dateinamen sein muss und bei * eben nicht.
Es sind ja auch Dateinamen ohne Dateiendung möglich...

Das war ja immer das Problem dabei:
* -> alle (bzw. nur) Dateien/Verzeichnisse mit beliebigem Namen OHNE Dateiendung
*.* -> alle Dateien/Verzeichnisse mit beliebigem Namen und beliebiger Dateiendung


edit: "beliebig" bedeutet(e) bei MS eben nicht "beliebig" sondern "mindestens (!!!) ein fast beliebiges Zeichen, gefolgt von beliebig vielen weitern fast beliebigen Zeichen". Dateien/Verzeichnisse mit Namen wie "NIXDRIN." oder ".tmp" sind nicht vorgesehen. Mit ein paar Klimmzügen lassen die sich zwar anlegen, beim Zugriff darauf kommt der Explorer aber ins Schleudern.
 
Zuletzt bearbeitet:
Das war ja immer das Problem dabei:
* -> alle (bzw. nur) Dateien/Verzeichnisse mit beliebigem Namen OHNE Dateiendung
*.* -> alle Dateien/Verzeichnisse mit beliebigem Namen und beliebiger Dateiendung

Ist jedenfalls unter Win7 (XP hab ich grad nicht da zum testen) kein Problem mehr: * und *.* liefern beide alle Dateien / Verzeichnisse, egal ob sie einen Punkt mit/ohne Dateiendung oder keinen enthalten. Ist zwar bei *.* eigentlich unlogisch aber ich schätze das wird als Ausnahme behandelt um Rückwärtskompatibel zu sein.