Windows XP以降の「圧縮フォルダ」機能を使って、zip圧縮スクリプトを実現すると、こんな感じになるらしいです。ヘッダをテキスト書きするとか、割と無理を通しているかも?

Windows標準(XP以降)の機能を使って、ファイルをzip圧縮する

filezip.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>

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS