在 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.exe于 Windows 的 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()

相关内容