아래에 나열된 배치 스크립트를 사용하면됩니다 (테스트 한 결과 이며 사양에 따라 작동 함). 디렉토리를 압축하고 이동을 상위 디렉토리로 지정하고 디렉토리의 이름 ( 시작 부분에 PARENT_FOLDERTOZIP 및 FOLDERTOZIP) - 전체 디렉토리를 복사하는 방법을 알지 못했습니다. (XCOPY는 내용 만 복사 할 수 있다고 생각합니다. 디렉터리 및 하위 디렉터리 ). 복사 위치는 이며 FOLDERTARGETLOCATION으로 지정되고 을 압축 할 파일을 배치 할 디렉토리는 ZIPDIR로 지정됩니다.
7-Zip의 위치는 SEVENZIP_EXE를 통해 구성됩니다.
필수 날짜 형식으로 현재 날짜를 가져 오는 것은 지역 설정의 간단한 날짜 형식에 따라 달라집니다. ISO-8601, 중부 유럽 및 미국에 대해 세 가지 버전을 나열했습니다. 목록에있는 활성 버전은 미국 용입니다 ("set FDATE ="행). 다른 하나가 필요한 경우 다른 두 개 중 하나에서 복사하여 붙여 넣기 만하면됩니다. 이런 종류의 일이 Perl, Python 또는 PowerShell 훨씬 쉽다는 것을 주목해야한다 고 말했다
.
@echo off
@title=Folder zip and move...
rem Parameters
rem Folder to zip and move
set PARENT_FOLDERTOZIP=T:\to delete
set FOLDERTOZIP=Folder to Compress
rem Target folder for moving the input folder to.
set FOLDERTARGETLOCATION=s:\move Here
rem Where to place compressed folders
set ZIPDIR=D:\toDelete\2009-09-24a
rem Configuration
set SEVENZIP_EXE=D:\Program Files\7-Zip\7z.exe
rem =================== Date ==============================================
rem There is no universal way inside batch itself to get a
rem date that is independent of regional settings (but is
rem quite trivial if an external program or script
rem (Perl/Python) is available).
rem
rem For short date formats:
rem
rem -------------------------------------------------------
rem
rem ISO-8601:
rem
rem yyyy-MM-dd/ E.g.: 2009-09-24
rem
rem set FDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
rem
rem -------------------------------------------------------
rem
rem Central european:
rem
rem dd/MM/yyyy E.g.: 24/09/2009
rem
rem set FDATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
rem
rem -------------------------------------------------------
rem
rem US:
rem
rem
rem MM/dd/yyyy E.g.: 09/24/2009
rem
rem set FDATE=%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%
set FDATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
set ZIPFILE=%ZIPDIR%\%FDATE%.7z
set FOLDERTOZIP_FULLPATH=%PARENT_FOLDERTOZIP%\%FOLDERTOZIP%
mkdir %FOLDERTARGETLOCATION%
rem Does a zip file already exist?
if exist "%ZIPFILE%" GOTO L_ZIPFILE_EXISTS
GOTO L_ZIPFILENAME_OK
rem Find a compressed file that does not already exist.
:L_ZIPFILE_EXISTS
set RNUM=0
:L_TRYANOTHER
set /a RNUM=%RNUM% + 1
set ZIPFILE=%ZIPDIR%\%FDATE%-%RNUM%.7z
echo Candidate: %ZIPFILE% ...
if exist "%ZIPFILE%" GOTO L_TRYANOTHER
rem Zip the folder!
:L_ZIPFILENAME_OK
"%SEVENZIP_EXE%" a %ZIPFILE% "%FOLDERTOZIP_FULLPATH%"
if exist "%ZIPFILE%" GOTO L_OKZIP
GOTO L_ERROREND
:L_OKZIP
rem Move folder: copy, then delete source.
set DEST_FOLDER=%FOLDERTARGETLOCATION%\%FOLDERTOZIP%
mkdir "%DEST_FOLDER%"
xcopy /Y /S "%FOLDERTOZIP_FULLPATH%"\*.* "%DEST_FOLDER%"\
rmdir /S "%FOLDERTOZIP_FULLPATH%"
GOTO L_END
:L_ERROREND
echo 7-Zipping failed !!!
:L_END
pause
당신은 시간이 없어 * 코멘트 * 약간 자극적이지만, 내가 답장을 할 시간이 없습니다. – pavium
@pavium : 죄송합니다 선생님 : ( – Tarik