2

希望有人看看我的脚本并告诉我我在哪里搞砸了。

这是一个压缩日志文件的脚本,然后我想将它们移动到一个将通过网络共享的新文件夹中。现在我只是想获得正确使用 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."
4

1 回答 1

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

如果您的日志文件或路径日志可以包含空格,它们也必须被引用。

于 2012-06-27T14:58:12.993 回答