次のタスクを実行するバッチ スクリプトがあります。
1. バックアップ フォルダを作成する
2. 特定のファイル (.log 形式のテキスト ファイル) を圧縮し、圧縮したファイルをバックアップ フォルダ
に移動する 3. 移動後に元のファイルを削除する
2 番目のタスクを達成するために、以下のようにバッチ スクリプトから VBScript ファイルにコマンドを記述し、バッチ スクリプトの最後で VBScript を実行します。
echo Option Explicit >> zipIt.vbs
REM remaining commands
CScript zipIt.vbs
バッチ スクリプトは、サイズが 100 MB のファイルに対して 3 つのタスクすべてを正常に実行します。ただし、サイズが 1 GB のファイルに対する VBScript コマンドで失敗します。コマンドプロンプトで次のエラーがスローされます
C:\Users\Administrator\Desktop\zipIt.vbs(18, 1) Microsoft VBScript runtime error
: Permission denied
以下は、zipIt.vbs の内容です。便宜上、ここに行番号を書きます。
1. Option Explicit
2. Dim FileToZip, Result
3. Dim oShell
4. Dim file
5. Dim oFileSys
6. Dim winShell
7. FileToZip = "C:\Program Files\logs\File_2013-04-29.log"
8. Result = "C:\Program Files\logs\File_2013-04-29.log.zip"
9. Set oShell = CreateObject("WScript.Shell")
10. Set oFileSys = CreateObject("Scripting.FileSystemObject")
11. Set file = oFileSys.CreateTextFile(Result, True)
12. file.Write "PK" & Chr(5) & Chr(6) & String(18, 0)
13. file.Close
14. Set file = nothing
15. set winShell = createObject("shell.application")
16. winShell.namespace(Result).CopyHere FileToZip
17. wScript.Sleep(5000)
18. oFileSys.DeleteFile FileToZip
VBScript を単独で実行すると、同じエラーが発生します。ファイルサイズが大きいためでしょうか?