VBScript继续循环以重命名文件
尝试创建一个不断循环的VBScript,直到找到特定文件并以分钟和秒将其重命名为其他扩展名:VBScript继续循环以重命名文件,vbscript,infinite-loop,wsh,Vbscript,Infinite Loop,Wsh,尝试创建一个不断循环的VBScript,直到找到特定文件并以分钟和秒将其重命名为其他扩展名: do Set fso = CreateObject("Scripting.FileSystemObject") Set myFile = fso.GetFile("C:\Users\user\Downloads\test.txt") If (fso.FileExists(myFile)) Then myFile.Move "C:\Users\user\Downloads\test.xml"
do
Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.GetFile("C:\Users\user\Downloads\test.txt")
If (fso.FileExists(myFile)) Then
myFile.Move "C:\Users\user\Downloads\test.xml"
End If
WScript.Sleep 1000
loop
上述操作可以工作并重命名该文件,但循环时会出现“无法找到文件”错误。需要添加else语句,但很难做到这一点 在尝试实例化
文件
对象引用之前,请先尝试检查文件是否存在
Dim fso, myFile, source, dest
Set fso = CreateObject("Scripting.FileSystemObject")
Do
source = "C:\Users\user\Downloads\test.txt"
dest = "C:\Users\user\Downloads\test.xml"
If fso.FileExists(source) Then
Set myFile = fso.GetFile(source)
Call myFile.Move(dest)
Set myFile = Nothing
End If
WScript.Sleep 1000
Loop
Set fso = Nothing
*这是一个基于原始示例的伪编码示例
将fso
实例化移到循环之外,以避免在每次迭代中重新实例化它
目前不确定循环的用途,但如果要长时间运行此循环,最好取消实例化任何引用,将它们设置为Nothing
,以帮助优化脚本内存
还建议在测试循环时使用计数器限制迭代次数,并在超过计数时退出循环
因为您移动了文件,所以设置myFile=fso.GetFile(“C:\Users\user\Downloads\test.txt”)在第二次迭代中将失败。在尝试实例化
myFile
对象引用之前,应该先检查.FileExists(完整文件路径)
。