File VBScript压缩大文件夹
我已经编写了一个脚本来备份TM1多维数据集系统的数据目录。脚本将创建一个新文件夹并跨多个文件夹复制文件(不包括某些文件/文件夹)。这个很好用 然后脚本将打开新文件夹。这似乎在大约10分钟后失败 正在备份大约2000个对象,包括一些大小高达3GB的多维数据集文件。在压缩之前,总容量约为7GB 我一直在我的C:驱动器上测试这一点,其中包含要备份的文件和结构的完整副本。它在zip中创建大约350个对象,包括一些多维数据集文件,然后失败 错误:需要对象:“名称空间(…)” 有什么想法吗 这是我的剧本:File VBScript压缩大文件夹,file,vbscript,zip,File,Vbscript,Zip,我已经编写了一个脚本来备份TM1多维数据集系统的数据目录。脚本将创建一个新文件夹并跨多个文件夹复制文件(不包括某些文件/文件夹)。这个很好用 然后脚本将打开新文件夹。这似乎在大约10分钟后失败 正在备份大约2000个对象,包括一些大小高达3GB的多维数据集文件。在压缩之前,总容量约为7GB 我一直在我的C:驱动器上测试这一点,其中包含要备份的文件和结构的完整副本。它在zip中创建大约350个对象,包括一些多维数据集文件,然后失败 错误:需要对象:“名称空间(…)” 有什么想法吗 这是我的剧本:
' http://stackoverflow.com/questions/15139761/zip-a-folder-up
' ArchiveFolder "E:\Tm1dev9\Backups\Friday.zip", "E:\Tm1dev9\Backups\Friday"
' ***** Varialbles to set ******
'
strWeekday = weekday(now())-1
strSourceFolder = "C:\Temp\TM1\ZipTesting\TM1_Data" ' do not use backslash at end
strDestFolder = "C:\Temp\TM1\ZipTesting\Day" & strWeekday ' do not use backslash at end
strExclude = "C:\Temp\TM1\ZipTesting\ExcludeList.txt"
strZipFile = "C:\Temp\TM1\ZipTesting\Day" & strWeekDay & ".zip"
dim fso
dim objShell
dim blnFinished
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
CopyFiles
WScript.Sleep 2000
ArchiveFolder strZipFile, strDestFolder
' Copy contents over to a backup folder excluding items in 'ExcludeList.txt'
Sub CopyFiles()
If fso.FolderExists(strDestFolder) Then
fso.DeleteFolder strDestFolder
End If
If fso.FileExists (strZipFile) Then
fso.DeleteFolder strZipFile
End If
objShell.run "xcopy " & strSourceFolder & "\*.* " & chr(34) & strDestFolder & "\*.*" & chr(34) & " /d /e /c /g /h /r /y /EXCLUDE:" & strExclude , 1, TRUE
End Sub
' Create Zip file from backup folder, then delete backup folder
Sub ArchiveFolder (zipFile, sFolder)
With CreateObject("Scripting.FileSystemObject")
zipFile = .GetAbsolutePathName(zipFile)
sFolder = .GetAbsolutePathName(sFolder)
With .CreateTextFile(zipFile, True)
.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, chr(0))
End With
End With
WScript.Sleep 2000
With CreateObject("Shell.Application")
.NameSpace(zipFile).CopyHere .NameSpace(sFolder).Items
Do Until .NameSpace(zipFile).Items.Count = _
.NameSpace(sFolder).Items.Count
WScript.Sleep 1000
Loop
End With
'WScript.Sleep 1000
If fso.FolderExists(strDestFolder) Then
fso.DeleteFolder strDestFolder
End If
End Sub
你能告诉我们错误发生在哪一行吗?错误输出应该指明哪一行…@Tony这一行上的脚本错误应该是
fso.DeleteFile strZipFile
或者甚至fso.DeleteFile strZipFile
而不是fso.DeleteFile strZipFile
,True内部子复制文件()
。然而,该脚本对我来说无论如何都是有效的:事实上,在一个相当少的文件样本上进行了测试。。。是否存在一些异常的属性文件或连接等?我已将“ArchiveFolder”子文件分离为单个脚本,然后今天又运行了几次。我注意到它偶尔会创建/删除zip文件“Day1.zip#RF1a64bc7.TMP”的临时文件。。。我现在收到了“丢失或空zip文件”的错误消息……您能告诉我们错误发生在哪一行吗?错误输出应该指明哪一行…@Tony这一行上的脚本错误应该是fso.DeleteFile strZipFile
或者甚至fso.DeleteFile strZipFile
而不是fso.DeleteFile strZipFile
,True内部子复制文件()
。然而,该脚本对我来说无论如何都是有效的:事实上,在一个相当少的文件样本上进行了测试。。。是否存在一些异常的属性文件或连接等?我已将“ArchiveFolder”子文件分离为单个脚本,然后今天又运行了几次。我注意到它偶尔会创建/删除zip文件“Day1.zip#RF1a64bc7.TMP”的临时文件。。。我现在收到了“丢失或空zip文件”的错误消息……您能告诉我们错误发生在哪一行吗?错误输出应该指明哪一行…@Tony这一行上的脚本错误应该是fso.DeleteFile strZipFile
或者甚至fso.DeleteFile strZipFile
而不是fso.DeleteFile strZipFile
,True内部子复制文件()
。然而,该脚本对我来说无论如何都是有效的:事实上,在一个相当少的文件样本上进行了测试。。。是否存在一些异常的属性文件或连接等?我已将“ArchiveFolder”子文件分离为单个脚本,然后今天又运行了几次。我注意到它偶尔会创建/删除zip文件“Day1.zip#RF1a64bc7.TMP”的临时文件。。。我现在收到“zip文件丢失或为空”的错误消息。。。