我在过去几天一直在谷歌搜索解决我的问题。 关于这个话题似乎有很多问题,但不知何故他们不适合我或(很可能)我会做错事。
Const OverwriteExisting = True
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim FSO, MyFile, FileName, strFileName, strCopyTo
Set FSO = CreateObject("Scripting.FileSystemObject")
strFileName = "C:\......SourceFolder\SourceFile.html"
strCopyTo = "T:\....DestinationFolder\"
FileName = "T:\........\autorun.inf"
If FSO.FileExists(strFileName) Then
FileSystemObject.CopyFile strFileName, strCopyTo, True
'FSO.CopyFile strFileName, strCopyTo, OverwriteExisting
Else
For i = 1 to 3
If FSO.FileExists(strFileName) Then
FileSystemObject.CopyFile strFileName, strCopyTo, True
else
WScript.sleep 1000 '1000 milliseconds
End if
Set MyFile = FSO.OpenTextFile(FileName, ForAppending, True, TristateTrue)
' Write to the file.
MyFile.WriteLine "Attempt " & i & " - " & Now
MyFile.Close
Next
End If
我要做的是将文件从位于C:\的源文件夹复制到名为T:的共享网络驱动器。 所以我启动了脚本,检查文件是否存在,如果存在,则必须将其复制到目标文件夹。 如果不是,我想尝试3次,每次至少1秒,彼此之间的一部分。因为我使用FOR方法和WScript.sleep函数。如果它不存在我将它写入文件。
一切正常,除了最重要的事情,文件即使确实存在也不会被复制。
我已经检查了原始目标文件和目标文件上的属性,因为根据谷歌的说法,只读属性会阻止文件被复制,即使在复制功能中也是如此。#34;覆盖"设置为TRUE。
所以我现在不知道在哪里看,非常感谢任何帮助。
由于 菲利普
答案 0 :(得分:1)
我会继续将此作为答案而不是评论发布,因为我非常确定这是导致您出现问题的原因。
SUP>在您尝试复制的行中,您有
FileSystemObject.CopyFile [...]
但是,您在任何时候都没有定义变量,更不用说名为FileSystemObject
的对象了。您的文件系统对象实际上定义为
Set FSO = CreateObject("Scripting.FileSystemObject")
那是FSO
,而不是FileSystemObject
。尝试将CopyFile行更改为:
FSO.CopyFile strFileName, strCopyTo, True
如果您使用<%Option Explicit%>
启动代码,则解释器(&#34;编译器&#34;)会为您捕获这些类型的错误。