Windows에서 bzip2ed 디렉토리 유지

Windows에서 bzip2ed 디렉토리 유지

다른 것 외에도 날짜 이름을 딴 폴더가 있는 폴더가 있습니다(예: 20110908 20110909 등). 매일 밤 나는 해당 날짜 마스크(201*일 수 있음)와 일치하는 모든 폴더를 확인하고 비슷한 이름의 bzip2 아카이브가 아직 없는 폴더를 bzip2 검사하는 도구를 실행하고 싶습니다. 그리고 이상적으로는 bzip2를 수행한 후 폴더 내용이 변경되면 해당 내용을 다시 bzip2하고 싶습니다.

나에게 도움이 될 만한 도구가 있나요?

답변1

명령줄 버전7-Zip여기서 당신을 도울 수 있습니다. 작업 스케줄러를 사용하여 예약하는 배치 파일을 만들 수 있습니다. 7-Zip의 업데이트 스위치 "u"를 사용하고 싶을 것입니다. 다음과 같은 스크립트가 트릭을 수행할 수 있습니다.

for /f %%F IN ('dir /b 201*') (

    REM Extract
    7z e %F.tar.bz2 %F.tar

    REM Update archive
    7z u %F.tar -uq2r2y2z2w2 %F

    REM Compress
    7z a %F.tar.bz2 %F.tar

    REM Delete tar
    del %F.tar

)

zip 또는 7z 형식을 사용해도 괜찮다면 "추출 후 재압축" 단계를 건너뛰고 간단히 업데이트 단계를 실행할 수 있습니다.

답변2

나는 bzip2.exeWindows용 Python을 사용하기로 결정했습니다.

#!/usr/bin/env python
import os
import subprocess

rootdir = "C:/XXX/"
for root, subFolders, files in os.walk(rootdir):
    for file in files:
    filename = os.path.join(root,file)
    if(os.path.splitext(filename)[1] != ".bz2"):
        print("Compressing "+filename+"...")
        process=subprocess.Popen('bzip2.exe %s'%(filename),shell=True)
        process.wait()

관련 정보