- 追加された行はこの色です。
- 削除された行はこの色です。
Windows XP以降の「圧縮フォルダ」機能を使って、zip圧縮スクリプトを実現すると、こんな感じになるらしいです。ヘッダをテキスト書きするとか、割と無理を通しているかも?
*** Windows標準(XP以降)の機能を使って、ファイルをzip圧縮する [#jbbc47bb]
#ref(zip.wsf);
<job id="addto_zipfile">
<script language="JScript">
//
// Windows標準(XP以降)の機能を使って、ファイルをzip圧縮する。
//
// @author Jomora ( kazuhiko@jomura.net http://jomura.net/ )
// @version 2011/05/23
// 以降、変更の必要なし
var fso = new ActiveXObject("Scripting.FileSystemObject");
var shell = WScript.CreateObject("Shell.Application");
if (0 == WScript.Arguments.length) {
WScript.Echo("引数を指定するか、何かファイルをドラッグ&ドロップしてみて");
WScript.Quit();
}
var args = new Array();
for (var i = 0; i < WScript.Arguments.length; i++) {
args[i] = fso.GetAbsolutePathName(WScript.Arguments(i));
}
// 作成するZIPファイル
var zipfile = fso.GetParentFolderName(args[0]) + "\\" + fso.GetBaseName(args[0]) + ".zip";
// ファイルがなければZIPファイルのひな形を作成
if (!fso.FileExists(zipfile)) {
var nf = fso.CreateTextFile(zipfile, false);
nf.Write("PK\5\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
nf.Close();
}
// ZIPファイルのオブジェクトを取得する
var zip = shell.NameSpace(zipfile);
// アーカイブにファイルを追加
for (var i = 0; i < args.length; i++) {
zip.CopyHere(args[i]);
}
// 圧縮が完了するのを待つ?
WScript.Sleep(500);
</script>
</job>