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… 
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
…
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…
Ich finde, der Windows-Scheduler sollte dies können, dann wäre es ein Windows-Feature.