外部DLLオッケーなら、7-zip32.dll(zipも扱えます)を使えば、大抵のことはできると思います〜。
#uselib "7-zip32.dll"
#cfunc SevenZip "SevenZip" int, str, var, int
#func SevenZipSetBackGroundMode "SevenZipSetBackGroundMode" int
zipName = "C:\\Temp\\aaa.zip"
fileName1 = "C:\\Temp\\aaa.txt"
fileName2 = "C:\\Temp\\bbb.txt"
// コマンドの作成
// a : 追加モード
// d : 削除モード
// -hide : 進捗状況表示をしない
// -tzip : 圧縮形式指定
// -ssw : 使用中のファイルも対象にする
addCmd = "a -hide -tzip -ssw \"" + zipName + "\" \"" + fileName1 + "\" \"" + fileName2 + "\""
delCmd = "d -hide \"" + zipName + "\" \"" + fileName1 + "\""
// バックグラウンドモードOFF
SevenZipSetBackGroundMode( 0 )
// 圧縮実行(aaa.txtとbbb.txtをzipに追加)
sdim result, 256
if ( SevenZip( hwnd, addCmd, result, 256 ) = 0 ) {
mes "圧縮成功"
} else {
mes "圧縮失敗"
}
// 削除実行(aaa.txtだけを削除)
if ( SevenZip( hwnd, delCmd, result, 256 ) = 0 ) {
mes "削除成功"
} else {
mes "削除失敗"
}
上の使い方以外にも、ワイルドカード指定や、フォルダを丸ごと対象にしたり、といったこともできます。
(詳しくは7-zip32.dll同梱の7-zipCMD.txt参照)