我正在尝试在我的脚本中添加一些内容,让我知道我正在复制的文件是否已被完全复制。
基本上我正在压缩一堆文件,然后将它们发送到网络上的映射驱动器。然后,一旦成功复制了原始位置的文件,我的脚本就会删除它们。该脚本运行良好,但我只需要添加一些错误处理,让我知道复制是否未成功完成。
我从来没有在 vbscript 中使用过任何错误处理,因为我只有大约一周的时间,所以任何帮助都将不胜感激。如果我需要更深入地解释任何事情,请告诉我。我的脚本可以在下面找到:
Option Explicit
Dim sDirectoryPath, sDestinationPath, sOutputFilename, Shell, sFileExt, sFilePrefix
shell = WScript.CreateObject("WScript.Shell")
'指定要压缩的文件所在的目录路径'指定压缩文件的目标'指定要查找的文件扩展名'指定要查找的文件名前缀
sDirectoryPath = "C:\Testscripts\"
sDestinationPath = "C:\Script\files\outzips\"
sOutputFilename = shell.ExpandEnvironmentStrings("%COMPUTERNAME%")
sFileExt = ".evtx"
sFilePrefix = "Archive*"
Dim Command, RetVal
Dim d : d = Date()
Dim dateStr : dateStr = Year(d) & "-" & Right("00" & Month(d), 2) & "-" & Right("00" & Day(d), 2)
Dim t : t = Time()
Dim timeStr: timeStr = Hour(t) & "-" & Right("00" & Minute(t), 2) & "-" & Right("00" & Second(t), 2)
Command = """C:\Program Files\7-zip\7z.exe"" a " & sDestinationPath & sOutputFilename & "-" & dateStr & "-" & timeStr & ".zip " & sDirectoryPath & sFilePrefix & sFileExt
RetVal = Shell.Run(Command,0,true)
Wscript.Sleep 2000
Dim objFso
Set objFSO = CreateObject("Scripting.FileSystemObject")
'将文件从一个路径复制到另一个路径
objFSO.CopyFile "C:\script\files\outzips\*.zip" , "G:\CopyTestFolder\"
If err.Number <> 0 Then
WScript.Echo "An error occured copying this file, re-attempt copy"
Else
WScript.Echo "No errors occured, copy successful"
End If
On Error GoTo 0
'文件被成功压缩和复制后,指定从哪里删除'旧的压缩文件,以及要删除的本地存档文件夹路径
objFSO.DeleteFolder("C:\Script")
'可以删除整个存档文件夹,也可以只删除文件夹中的 .zip 文件
objFSO.DeleteFile("C:\Testscripts\Archive*.evtx")
'复制成功后需要删除的原始文件所在位置