최종 수정 날짜가 30 일 이상인 특정 디렉토리의 모든 파일을 보관할 수있는 스크립트를 만들고 있습니다. 파일을 새 폴더로 이동해야하며이 폴더는 나중에 압축해야합니다.보관 파일에 일괄
Aditionaly - 이것은 약간 crutial입니다. 보관 프로세스에서 파일은 월별로 그룹화되어야합니다. 압축 된 폴더의 이름은 포함 된 파일의 월 및 연도를 나타내야합니다.
예 : 2012_12.zip가 (2012 12 월부터 모든 파일을 포함);
보너스 기능으로ECHO OFF
ECHO.
SET /p folder=Which folder you want to archive?
ECHO.
ECHO %folder%
CHDIR %folder%
MKDIR Archive
ROBOCOPY "%folder%" "%folder%\Arquivo" /E /V /ETA /MOVE /XD "%folder%\Archive"
:: Exclude files newer than 30 days
FORFILES /P "%folder%\Archive" /D -31/12/2012 /D +1/12/2012 /C GOTO :ZIP
CALL:ZIP
SET filetozip="%folder%\Archive"
set tempdir=C:\Users\tiago.campos\Documents\OMS\FilesArchiver\tempdir
mkdir %tempdir%
copy %filetozip% %tempdir%
mkdir "%filetozip%\Archive"
rmdir %tempdir%
realdate
echo Set objArgs = WScript.Arguments > _zipIt.vbs
echo InputFolder = objArgs(0) >> _zipIt.vbs
echo ZipFile = objArgs(1) >> _zipIt.vbs
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipIt.vbs
echo Set objShell = CreateObject("Shell.Application") >> _zipIt.vbs
echo Set source = objShell.NameSpace(InputFolder).Items >> _zipIt.vbs
echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipIt.vbs
echo wScript.Sleep 2000 >> _zipIt.vbs
CScript _zipIt.vbs %tempdir% "%filetozip%\Archive\2013.01.zip"
del "_zipIt.vbs"
pause
, 그것은 매우 유용 할 경우 대신 디렉토리 등을 제공하는 것입니다 : 2013_01.zip 이것은 내가 지금까지 무엇을 가지고
(헤세이 2013 년 모든 파일을 포함) 스크립트는 하나 이상의 디렉토리가있는 csv 파일에서 읽습니다.
저는 잠시 잊었습니다. 모든 답장에 대해 미리 감사드립니다!