Files mit bestimmten Attr. automatisch verschieben

Hallo zusamen,

Ich habe folgendes Problem: Ich möchte einen Windows (windows Vista) Scheduler aufsetzen der in einem bestimmten Verzeichnis nachschaut ob Files vorhanden sind, und diese dann selbständig in ein anderes Verzeichnis verschiebt. Wichtig ist, dass nur Files die zB. älter als 5 Stunden sind verschoben werden.

Einen Scheduler aufsetzen der Files kopiert ist kein Problem, leider kann ich das Zeit-Attribut aber nicht mitgeben… heisst, es werden immer alle Files verschoben.

Kennt jemand ein gescheites Programm dass diese funktion kann? Es gibt zwar das FileMove Pro (oder ähnlich)… das ist aber nicht wirklich Vista-Tauglich. Es sollte schon einigermassen zuverlässig laufen.

Für jeden Tipp dankbar.

Danke und Gruss,

Oliver

Kennt jemand ein gescheites Programm dass diese funktion kann?

Ich würde die klassischen Unix-Tools find und mv dafür nehmen; davon gibt’s auch Windowsversionen.

http://www.gnu.org/software/findutils/
http://www.gnu.org/software/coreutils/

http://gnuwin32.sourceforge.net/
http://www.cygwin.com/

Andreas

Hallo Oliver

Folgendes VB-Script, das ich soeben gebastelt habe, macht genau das, also es verschiebt alle Dateien, die älter als 5 Stunden sind vom Quell- in den Ziel-Ordner. Als Parameter müssen der Quell- und der Ziel-Ordner (in dieser Reihenfolge) übergeben werden.
Wenn das Script unter FileMove.vbs gespeichert wird lautet der Aufruf also z. B.:
filemove c:\Daten c:\Archiv

Hier ist das Script:

 Dim fso, folder, files, NewsFile
 Dim FrmFld, ToFld, FrmFile

 Set fso = CreateObject("Scripting.FileSystemObject")

 '\*\*\* Es müssen 2 Parameter übergeben werden. \*\*\* 
 if wscript.arguments.count "\" then
 FrmFld = FrmFld & "\"
 end if

 if right(ToFld,1) "\" then
 ToFld = ToFld & "\"
 end if

 Set folder = fso.GetFolder(FrmFld)
 Set files = folder.Files

 '\*\*\* Alle Dateien im Quell-Ordner verarbeiten \*\*\*
 For each folderIdx In files
 FrmFile = FrmFld & folderIdx.Name
 '\*\*\* Datei vom Quell- in den Ziel-Ordner verschieben, wenn sie älter als 5 Stunden ist \*\*\*
 if DateAdd("h",5,folderidx.DateLastModified) 

MfG
Roland




> Ich habe folgendes Problem: Ich möchte einen Windows (windows  
> Vista) Scheduler aufsetzen der in einem bestimmten Verzeichnis  
> nachschaut ob Files vorhanden sind, und diese dann selbständig  
> in ein anderes Verzeichnis verschiebt. Wichtig ist, dass nur  
> Files die zB. älter als 5 Stunden sind verschoben werden.  
>   
> Einen Scheduler aufsetzen der Files kopiert ist kein Problem,  
> leider kann ich das Zeit-Attribut aber nicht mitgeben...  
> heisst, es werden immer alle Files verschoben.  
>   
> Danke und Gruss,  
>   
> Oliver
:smile: Cool.

Und ich wollt mir schon Perl installieren und es damit machen… :open_mouth:

Vielen Dank erstmal, ich werde das Script gerne ausprobieren.

Grüsse,

Oliver

Hallo Andreas,

Danke für den Tipp… ich hab sogar schon mit dem Gedanken gespielt Perl zu installieren und mir ein entsprechendes Script via Cronjob aufzurufen. Eigentlich eine Schande dass das Windows von sich auch nicht bringt…

Danke erstmal und Grüsse,

Oliver

:smile: Hat Super geklappt.

Vielen Dank für das nützliche Script.

Grüsse,

Oliver

Zum Gruße,

Eigentlich eine Schande dass
das Windows von sich auch nicht bringt…

Was ist mit Robocopy? Das sollte doch eigentlich für so etwas das richtige Tool sein.
Es ist bei Vista dabei. Gib auf der Befehlszeile robocopy /? ein.

Gruß TL

Hallo,

Auch erst mal danke für den Tipp…

Ja, Robocopy „wäre“ tatsächlich das richtige Tool… soweit ich das aber herausgefunden habe kann ich bei der Angabe des „Mindest-Alters“ der Datei nur Angaben in Tagen, nicht aber in Stunden machen. Meine Files sollten aber wirklilch max. 5 Stunden dort liegen und dann weggemoved werden.


Und, um noch einwenig an Windows herumzunörgeln: Eigentlich ist es ja kein Windows-Tool, sondern ein DOS-Tool… :wink: Ich finde, der Windows-Scheduler sollte dies können, dann wäre es ein Windows-Feature.