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") 会为您捕获这些类型的错误。
最近几天我一直在谷歌上搜索我的问题的解决方案。 关于这个话题似乎有很多问题,但不知何故它们对我不起作用,或者(很可能)我会做错事。
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") 会为您捕获这些类型的错误。