我有一个文件夹,除了其他内容外,还有以日期命名的文件夹,例如 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()