【发布时间】:2013-04-29 07:35:06
【问题描述】:
我有一个执行以下任务的批处理脚本。
1. 创建备份文件夹
2. 压缩特定文件(.log 格式的文本文件)并将压缩文件移动到备份文件夹
3.移动后删除原文件
为了完成第二个任务,我将命令从批处理脚本写入 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,则会出现同样的错误。是因为文件大吗?
【问题讨论】:
-
VBScript 只是创建了一个空的 zip 文件,即
File_2013-04-29.log.zip但它无法添加 .log 文件并删除原始文件。
标签: vbscript batch-file windows-server-2008-r2