使用通配符复制文件时出现“找不到路径”错误

时间:2014-07-09 09:38:56

标签: vbscript file-management

源代码:

Const OverwriteExisting = TRUE
Dim strSafeDate, strSafeTime, strDateTime

strSafeDate = Right("0" & DatePart("d",Date), 2) & "." & Right("0" & DatePart("m",Date), 2) & "." & DatePart("yyyy",Date)
strSafeTime = Right("0" & Hour(Now), 2) & Right("0" & Minute(Now), 2) & Right("0" & Second(Now), 2)

strDateTime = strSafeDate & " - " & strSafeTime

Set objFSO = CreateObject("Scripting.FileSystemObject")

objFSO.CopyFile "\\Ilgglafnp02\sapoutput\PRD\SpiceWorksReports\CurrentReportFiles\TicketsRaised(All)\*.*", "\\Ilgglafnp02\sapoutput\PRD\SpiceWorksReports\Archive\TicketsRaised(All)\"& strDateTime & ".xls"
objFSO.DeleteFile "\\Ilgglafnp02\sapoutput\PRD\SpiceWorksReports\CurrentReportFiles\TicketsRaised(All)\*.*"

详细说明:

我试图编写一个简单的脚本,将所有文件从网络上的一个共享位置复制到另一个共享位置以进行存档。

当我像这样指定原始文件的名称时:

objFSO.CopyFile "\\Ilgglafnp02\sapoutput\PRD\SpiceWorksReports\CurrentReportFiles\TicketsRaised(All)\HelloWorld.xls", 

将文件复制到Archive文件夹并重命名为当前日期和时间 - 这是正确的,并且原始文件夹中的文件将被删除。

但是,当我更改此脚本以尝试从此文件夹中移动所有文件时,我收到以下错误消息:

Script: Reporting.vbs
Line:   16
Char:   1
Error:  Path not found
Code:   800A004C
Source: Microsoft VBScript runtime error

这让我感到困惑,因为DeleteFile行使用相同的目录路径,并且还使用" "通配符,但在运行指定原始文件名的脚本时,这不会出现任何错误或问题。

我知道有xcopy,但我真的希望尽可能避免这种情况。

1 个答案:

答案 0 :(得分:1)

您正尝试将多个源文件复制到一个目标.xls文件中,但documentation个州

  

如果source包含通配符或目标以路径结尾   分隔符(\),假设目标是其中的现有文件夹   哪个可以复制匹配的文件。

您的来源包含通配符,但您的目标不是现有文件夹,这是导致错误的原因。

您有两个选择

  • 首先创建一个带有时间戳的文件夹,将所有文件复制到其中,而不进行任何重命名
  • 遍历源文件夹的文件集合,将每个文件复制到目标中的带时间戳的文件。