FURUやんのScript忘備録

自分で作ったり調べたり踊ったりしてカスタマイズしたりどこかから引用したりしたScriptや手順の忘備録です  このサイトに掲載のスクリプト・手順など全ての情報については、一切の保証とサポートが無いものとしてご利用下さい。PCの不具合、動作、データの破損などについて責任を負うことはできません。あくまでも自己責任となります。

VBSで圧縮ツール作ってみた

Option Explicit
dim objFSO, objFile, objShell, InputFile, ZipFile, hdrary, strbuf, ZipItemCount, i
if WScript.Arguments.Count < 2 then
    WScript.Echo "Usage: CScript.exe CompZip.VBS ZIPFile InputFiles..."
    WScript.Quit
end if
ZipFile=WScript.Arguments.Item(0)
' Zipファイル新規作成
hdrary = Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)  'zipファイルのヘッダ情報
For i = 0 To UBound(hdrary)
  strbuf = strbuf & Chr(hdrary(i))
Next
' ファイル新規作成(既存ファイルは上書きされる)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(ZipFile, True)
objFile.Write(strbuf)
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
' 新規作成したZipファイルに、圧縮元ファイルを追加
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.NameSpace(ZipFile)
ZipItemCount = objFile.Items().Count
for i = 1 to WScript.Arguments.Count - 1
    InputFile = WScript.Arguments.Item(i)
    objFile.CopyHere(InputFile)
    ' 追加完了待ち
    Do While ZipItemCount = objFile.Items().count
        WScript.Sleep(250)
    Loop
    ZipItemCount = ZipItemCount + 1
next
Set objFile = Nothing
Set objShell = Nothing

 

このサイトに掲載のスクリプト・手順など全ての情報については、一切の保証が無いものとしてご利用下さい。PCの不具合、動作、データの破損などについて責任を負うことはできません。あくまでも自己責任となります。