我正在尝试从文本文件中读取PATH并检查该文件是否存在于“input.txt”文件中指定的PATH中。虽然该文件存在于指定位置。循环继续运行。请帮助
以下是我的VBScript
Set oReadObj = CreateObject("Scripting.FileSystemObject")
set oRead = oReadObj.OpenTextFile("C:\input.txt", 1)
loc = oRead.ReadAll()
Do Until oReadObj.FileExists(loc)
wscript.sleep 5000
Loop
msgbox "file found"
答案 0 :(得分:0)
.ReadAll()可能包含文件中的EOL,它肯定不是路径的一部分;使用.ReadLine(),因为你只想获得一个路径。
第二个想法:
您的文件中可能还有其他垃圾(空格,BOM,...)。你尝试过像
这样的东西吗?WScript.Echo ">" & loc & "<"
检查那些或错别字?
<强>重新启动:强>
根据您的意见:
如果我指定“路径(安装程序的位置)”而不是变量 “loc”,我得到了预期的结果
这是我的“input.txt”文件的内容 “C:\用户\管理员\下载\ Storage_Manager_Server - 窗口x86_64-6.0.0.ex E”
我们可以
loc
- 即文件的内容 - 应该归咎于如果我们确定EOL,空白,拼写错误 导致.FileExists失败,那么最可能的假设是:该文件包含“(引用路径),这对shell很有用,但对FileSystemObject方法来说是致命的。
答案 1 :(得分:0)
你不需要循环来检查文件是否存在(如果你有完整的路径),这里是你需要的代码。
Set oReadObj = CreateObject("Scripting.FileSystemObject")
set oRead = oReadObj.OpenTextFile("C:\input.txt", 1)
loc = oRead.ReadAll()
If oReadObj.FileExists(loc) Then msgbox "file found" else msgbox "file not found"