在 Windows 上維護 bzip2ed 目錄

在 Windows 上維護 bzip2ed 目錄

我有一個資料夾,除了其他內容外,還有以日期命名的資料夾,例如 20110908 20110909 等等。每天晚上,我都想運行一個工具來檢查與該日期遮罩(可能是 201*)匹配的所有資料夾,以及 bzip2 任何尚未具有類似名稱的 bzip2 存檔的資料夾。理想情況下,如果在 bzip2-ing 之後資料夾內容髮生變化,我想重新對它們進行 bzip2。

有沒有可以幫助我的工具?

答案1

命令列版本7-拉鍊可以在這裡幫助你。您可以建立使用任務計劃程序排程的批次檔。您可能需要使用 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

我求助於將 python 與bzip2.exeWindows 一起使用。

#!/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()

相關內容