binderalex
Goto Top

Automatisiertes Verschieben von Ordnern

Hallo zusammen,

ich nutze das nachfolgende Skript um das Alter (in Minuten) von Verzeichnissen zu überprüfen und im entsprechenden Fall eine Aktion durchzuführen:

@echo off & setlocal

set "Basis=C:\Test"
set /a MaxAge=2
set C=%temp%\ChkAge.vbs


echo WScript.Echo DateDiff("n",WScript.Arguments(0),Now)>%C%
for /d %%v in ("%Basis%\*.*") do call :ProcessFolder "%%v"
goto :eof


:ProcessFolder
for /f "tokens=1-2" %%i in ('dir "%Basis%" /ad /tc^|findstr /i /c:"%~n1"') do set "DT=%%i %%j"
for /f %%i in ('cscript //nologo %C% "%DT%"') do set /a "Age=%%i"

if %Age% gtr %MaxAge% (
echo Das Skript funktioniert fuer %1
)

goto :eof

Nun zum Problem:

In einem bestimmten, festen Verzeichniss, sollen alle enthaltenen Dateien (alle mit Endung .bak) anhand der Jahreszahl (CreateDate) in die entsprechenden Ordner verschoben werden.
Also eine Datei aus dem Jahr 2007 soll in den Ordner "2007" verschoben werden und wenn dieser nicht existiert, soll er angelegt werden.

Welchen Teil des o.g. Skripts muss ich hierfür anpassen?

Vielen lieben Dank schon im Voraus für eure Hilfe face-smile

Content-ID: 90684

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

Ausgedruckt am: 20.11.2024 um 03:11 Uhr

bastla
bastla 26.06.2008 um 09:07:08 Uhr
Goto Top
Hallo BinderAlex!

Die neue Problemstellung hat nur bedingt mit der vorhergehenden zu tun ...

@echo off & setlocal
set "Verzeichnis=C:\Test"  
set "Ext=.bak"  
set "Ziel=C:\Archiv"  

for /f "tokens=1,4" %%i in ('dir /a-d /tc "%Verzeichnis%"^|findstr /i /c:"%Ext%"') do call :ProcessFile "%%i" "%%j"  
goto :eof

:ProcessFile
for /f "tokens=3 delims=." %%a in (%1) do set Jahr=%%a  
if not exist "%Ziel%\%Jahr%\" md "%Ziel%\%Jahr%\"  
echo move "%Verzeichnis%\%~2" "%Ziel%\%Jahr%\"  
goto :eof
Das Zielverzeichnis wird bei Bedarf neu erstellt, das Verschieben der Dateien durch das "echo" vor dem "move" derzeit nur simuliert - auch, da im Falle einer Namensgleichheit zwischen einer zu verschiebenden Datei und einer sich bereits im Zielverzeichnis befindenden letztere kommentarlos überschrieben würde ...

Grüße
bastla
BinderAlex
BinderAlex 26.06.2008 um 09:29:11 Uhr
Goto Top
Jaa aber so ein bissle hat das schon miteinander zu tun ;)

Auf jeden Fall vielen lieben Dank ... das Skript läuft super.Namensgleichheit kann in diesem Fall ausgeschlossen werden, da es sich um automatisch erstellte Dateien handelt face-smile Dankeeeeeeschön

Viele Grüße
Alex