希望有人看一下我的脚本并告诉我哪里搞砸了。
这是一个用于压缩日志文件的脚本,然后我想将它们移动到将通过网络共享的新文件夹中。现在我只是想得到它使用 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."
最佳答案
你的引述有误。要在字符串中使用引号,您必须复制引号。
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
如果您的日志文件或路径日志可以包含空格,则也必须用引号引起来。
关于VBscript 使用 7zip 压缩日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11228664/