圧縮フォルダを作成してコピーする WSH スクリプト
shell32.dll の Shell オブジェクトを使用してZIPフォルダを作る JScript です。これも1回使っただけでお蔵入りの予感。VC++ 版もあるけど・・・API直叩きの方がいい気がするので、それはとりあえず保留。
// // makeZipFolder.js // // スクリプト ランタイム関連 var fileSystemObject = new ActiveXObject ('Scripting.FileSystemObject'); var wsShell = new ActiveXObject ('WScript.Shell'); // 固めるパス var sourcePath = wsShell.SpecialFolders ('AppData'); sourcePath = fileSystemObject.BuildPath (sourcePath, "Test"); // デスクトップ var desktopPath = wsShell.SpecialFolders ('Desktop'); // 作成する ZIP ファイルのパス var zipPath = fileSystemobject.BuildPath (desktopPath, 'Test.zip'); // ZIP ファイルを作成する var zipFile = fileSystemObject.CreateTextFile (zipPath, false); zipFile.Write ("PK\5\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); zipFile.Close (); // ZIP ファイルを圧縮フォルダとして取得 var shell = new ActiveXObject ('Shell.Application'); var zipFolder = shell.NameSpace (zipPath); // コピー元 var sourceFolder = fileSystemObject.GetFolder (sourcePath); for (var n = 0, var e = new Enumerator (sourceFolder.Files); ! e.atEnd (); e.moveNext ()) { // ファイルをコピー var sourceFolderItem = shell.Namespace (e.item ().ParentFolder.Path).ParseName (e.item ().Name); zipFolder.CopyHere (sourceFolderItem); n ++; // コピーが完全に完了するまで待機 while (n == zipFolder.Items ().Count) { WScript.Sleep (100); } } WScript.echo ("完了しました。");
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/1937
コメント