Windows で bzip2 されたディレクトリを管理する

Windows で bzip2 されたディレクトリを管理する

他にも、日付にちなんで名付けられたフォルダー (例: 20110908 20110909 など) があるフォルダーがあります。毎晩、その日付マスク (201* など) に一致するすべてのフォルダーをチェックするツールを実行し、同様の名前の bzip2 アーカイブがまだ存在しないフォルダーを bzip2 で圧縮したいと思います。そして、理想的には、bzip2 で圧縮した後にフォルダーの内容が変わった場合は、再度 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

私は Windows 用の で Python を使用することにしましたbzip2.exe

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

関連情報