有一个每晚运行的过程来自动压缩旧文件?

我有一个文件共享,我想要一个进程枚举该共享上的文件,并自动创build一个超过1个月的7z自解压文件 。 在不同的份额上,我想创build一个超过1个月的7z自解压目录 。 任何想法,如果有一个程序可以做到这一点? 我已经有了

7z a -t7z -mx9 -sfx filename.exe filename.txt 

它的一部分,只需要更多的自动pipe理部分。

在Windows Server 2008上运行,是的,PowerShell可用。 Cygwin不会是一个选项。

我最终用一个batch file做到这一点,并将其设置为通过任务计划程序运行。 如果有人感兴趣,这里是batch file:

 @echo off set RETENTION_PERIOD_DAYS=30 set FILE_BASED_ARCHIVES=g:\shares\public\crashes set DIRECTORY_BASED_ARCHIVES=g:\shares\results set MINIMUM_FILESIZE=1000000 set ZIP_PATH="c:\Program Files\7-Zip\7z.exe" if not {%1}=={} call :archive %1 %2 %3 %4&exit /b 0 echo Archiving files older than %RETENTION_PERIOD_DAYS% days. echo File Based: %FILE_BASED_ARCHIVES% echo Directory Based: %DIRECTORY_BASED_ARCHIVES% for %%a in (%FILE_BASED_ARCHIVES%) do ( echo ********* Archiving %%a du /s "%%a" echo ----------------------- forfiles /p %%a /s /m *.* /d -%RETENTION_PERIOD_DAYS% /c "cmd /c call ^0x22%~dpnx0^0x22 ^0x22FILE^0x22 ^0x22@isdir^0x22 ^0x22@fsize^0x22 @path" echo ----------------------- du /s "%%a" echo **************************************************** ) for %%a in (%DIRECTORY_BASED_ARCHIVES%) do ( echo ********* Archiving %%a du /s "%%a" echo ----------------------- forfiles /p %%a /d -%RETENTION_PERIOD_DAYS% /c "cmd /c call ^0x22%~dpnx0^0x22 ^0x22DIR^0x22 ^0x22@isdir^0x22 ^0x22@fsize^0x22 @path" echo ----------------------- du /s "%%a" echo **************************************************** ) exit /b 0 :archive if /i "%~1"=="FILE" ( if /i "%~2"=="FALSE" (call :archive_file %3 %4) else (echo Skipping %~4 as it is not a file.) ) if /i "%~1"=="DIR" ( if /i "%~2"=="TRUE" (call :archive_dir %4) else (echo Skipping %~4 as it is not a directory.) ) exit /b 0 :archive_file set FILESIZE=%~1 if %FILESIZE% GEQ %MINIMUM_FILESIZE% ( call :7zip %2 && del /q /f %2 ) else ( echo Skipping %~2 as it is smaller than %MINIMUM_FILESIZE% bytes. ) exit /b 0 :archive_dir call :7zip %1 && rd /q /s %1 exit /b 0 :7zip %ZIP_PATH% t "%~1">nul || ( %ZIP_PATH% a -t7z -mx9 -sfx "%~dp1%~n1.exe" "%~dpnx1" || exit /b 1 ) exit /b 0 

看起来他正在跑窗户的家伙。 (。可执行程序)

创build运行该命令的快捷方式或batch file,然后从Windows任务计划程序运行快捷方式或batch file。