vbscript 未按要求执行

vbscript does not execute as desired

最近几天我一直在谷歌上搜索我的问题的解决方案。 关于这个话题似乎有很多问题,但不知何故它们对我不起作用,或者(很可能)我会做错事。

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 函数。如果它不存在,我会将其写入文件。

一切正常,除了最重要的一点,文件即使存在也不会被复制。

我已经检查了源文件和目标文件的属性,根据 google,即使在复制功能中,只读属性也会阻止文件被复制 "overwrite"设置为 TRUE。

所以我现在不知道去哪里找,非常感谢任何帮助。

谢谢 菲利普

我要继续post这是一个答案而不是评论,因为我很确定这是导致你问题的原因。

在您尝试复制的行中,您有

FileSystemObject.CopyFile [...]

但是,您绝不会定义一个名为 FileSystemObject 的变量,更不用说对象了。您的文件系统对象实际上定义为

Set FSO = CreateObject("Scripting.FileSystemObject")

那是 FSO,不是 FileSystemObject。尝试将您的 CopyFile 行更改为:

FSO.CopyFile strFileName, strCopyTo, True

如果您的代码以 <%Option Explicit%> 开头,解释器 ("compiler") 会为您捕获这些类型的错误。