我想创建一个执行以下操作的脚本:
从本地驱动器上的源文件夹“reportexport01”,“reportexport02”进行复制
从过去24小时修改
复制到共享驱动器上的目标文件夹“deptreport01”,“deptreport02”
我将使用此脚本创建一个每晚午夜运行的计划任务,并将前一天的报告复制到部门共享驱动器。令我难过的是目标文件夹的命名方式与源文件夹不同。不幸的是,我无法更改命名方案,因为其他自动报告使用这些文件夹。在我知道之前的24小时和不同的文件夹名称要求之前,下面是我原始脚本只是简单地复制了文件夹。
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder "E:\export\reportexport01", "\\sharedrive\deptreport01"
FSO.CopyFolder "E:\export\reportexport02", "\\sharedrive\deptreport02"
这是我到目前为止所拥有的
Option Explicit
Dim FSO, folder, file
Dim Filepath(4)
Filepath(0)="E:\TestExport\Src01"
Filepath(1)="\\deptshare\TestExport\Dest01"
Filepath(2)="E:\TestExport\Src02"
Filepath(3)="\\deptshare\TestExport\Dest02"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = fileSystem.GetFolder(Filepath(0))
for each file in folder.Files
if file.DateLastModified > dateadd("h", -24, Now) then
FSO.CopyFile "Filepath(0)", "Filepath(1)"
WScript.Echo file.Name & " last modified at " & file.DateLastModified
end if
next
Set folder = fileSystem.GetFolder(Filepath(2))
for each file in folder.Files
if file.DateLastModified > dateadd("h", -24, Now) then
FSO.CopyFile "Filepath(2)", "Filepath(3)"
WScript.Echo file.Name & " last modified at " & file.DateLastModified
end if
在同事的一些重要意见之后清理干净
Option Explicit
Dim oFSO, oFolder, oFile, i
Dim arrSourcePaths : arrSourcePaths = Array( _
"E:\TestExport\Src01", _
"E:\TestExport\Src02" _
)
Dim arrDestinationPaths : arrDestinationPaths = Array( _
"\\deptshare\TestExport\Dest01", _
"\\deptshare\TestExport\Dest02" _
)
oFSO = CreateObject("Scripting.FileSystemObject")
For i = 0 To UBound(arrSourcePaths)
oFolder = oFSO.GetFolder(arrSourcePaths(i))
For Each oFile In oFolder.Files
WScript.Echo oFile.Name & " was last modified at " & oFile.DateLastModified '
If oFile.DateLastModified < DateAdd("h", -24, Now) Then
oFSO.CopyFile (arrSourcePaths(i) & "\" & oFile.Name, arrDestinationPaths(i) & "\" & oFile.Name)
End If
Next
Next
不幸的是,我对子程序中的parens给出了错误。删除后,我收到oFSO =“对象不支持此属性或方法的错误。
答案 0 :(得分:0)
You can't use pararentheses when calling a Sub!
oFSO.CopyFile (arrSourcePaths(i) & "\" & oFile.Name, arrDestinationPaths(i) & "\" & oFile.Name)
==&GT;
oFSO.CopyFile arrSourcePaths(i) & "\" & oFile.Name, arrDestinationPaths(i) & "\" & oFile.Name
将对象分配给变量需要Set
。
oFSO = CreateObject("Scripting.FileSystemObject")
==&GT;
Set oFSO = CreateObject("Scripting.FileSystemObject")