VBscript用7zip压缩日志文件

时间:2012-06-27 14:36:08

标签: vbscript zip

希望有人看看我的剧本并告诉我在哪里弄乱。

这是一个压缩日志文件的脚本,然后我想将它们移动到一个将通过网络共享的新文件夹中。现在我只是试图获得正确使用7zip压缩文件的部分。

我是VB的新手(比如2天),所以我觉得有一些语法问题。

脚本如下所示,提前感谢您提供所有建议和帮助

Option Explicit

WScript.Echo "Press to start zipping log files."

Dim objFile, objPath, objFolder, Command, PathLogs, RetVal
Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objShell: Set objShell = CreateObject("WScript.Shell")

PathLogs = "C:\Testscripts\testfolder\" 'This path just has some test logs

'循环浏览日志并压缩并移动每个文件(如果需要,您只需移动带有'.log'扩展名的文件)

Set objPath = objFSO.GetFolder(PathLogs)
For Each objFile In objPath.Files
If (LCase(objfso.GetExtensionName(objFile)) = "log") Then
    Wscript.Echo objFile.Name
    ' zip and move files
    'Command = """C:\Program Files\7-zip\7z.exe"" -m -ex """ & PathLogs &     \objFile.Name objfso.GetBaseName(objFile) & "*.zip"" """ & PathLogs & objFile.Name & """"
     Command = ""C:\Program Files\7-zip\7z.exe"" a -m -ex " & PathLogs & "" & objFile.Name & ".zip " & PathLogs & "" & objFile.Name & "
        WScript.Echo "Command: " & Command
RetVal = objShell.Run(Command,0,true)

End If

Next

WScript.Echo "Zip Successful."

1 个答案:

答案 0 :(得分:2)

你的报价错了。要在字符串中使用引号,您必须复制引号。

Command = """C:\Program Files\7-zip\7z.exe"" a -m -ex " _ 'this is the first part of the string
          & PathLogs & objFile.Name & ".zip " & PathLogs & objFile.Name

如果您的Logfile或PathLogs可以包含空格,那么它们也必须被引用。