使用 fso.GetAbsolutePathName(".") 检查后如何设置正确的语法 if (fso.FileExists("")) [重复]

Posted

技术标签:

【中文标题】使用 fso.GetAbsolutePathName(".") 检查后如何设置正确的语法 if (fso.FileExists("")) [重复]【英文标题】:How to set correct syntax if (fso.FileExists("")) after checking with fso.GetAbsolutePathName(".") [duplicate] 【发布时间】:2021-07-29 22:11:13 【问题描述】:

我正在努力使用正确的语法来设置路径:

if (fso.FileExists("myfile.txt")) then ....

我用这个:

set fso = WScript.CreateObject("Scripting.FileSystemObject")
Mypath = fso.GetAbsolutePathName(".")
if (fso.FileExists("myfile.txt")) then...

据我了解 fso.GetAbsolutePathName(".") 知道我的脚本启动的路径 并且在测试时我可以看到正确的路径:

call MsgBox(Mypath)

例如 MsgBox 显示 c:\users\user\desktop 那是脚本启动的地方,也是我创建文件的地方。 我不能直接使用路径,因为它需要是动态的,文件将被创建和替换 如果存在于启动脚本的同一路径中。

我希望它足够清楚,并且有人可以回答这个问题! 我读过很多例子,但没有一个涵盖这个特殊需求。 谢谢

【问题讨论】:

您可以使用BuildPath Method。 if (fso.FileExists(fso.buildpath(Mypath,"myfile.txt"))) then 您好@Flakes,我已经尝试过您的代码,它应该可以工作,但我收到一条错误消息。错误:子函数调用不允许括号错误代码:0x800A0414 @Flakes 这是我所做的:set fso = WScript.CreateObject("Scripting.FileSystemObject") Mypath = fso.GetAbsolutePathName(".") if (fso.FileExists(fso.buildpath(Mypath,"test.txt"))) then fso.DeleteFile(Mypath,"t_")end if 你想用fso.DeleteFile(Mypath,"t_")做什么?如果要在多个位置使用文件的完整路径,请将其存储在变量中并重复使用。 fullPath = fso.buildpath(Mypath,"test.txt"). @Flakes 假设这样做是在代码中稍后删除和替换它。如果我在同一路径中启动 VBscript 两次,以确保在其余代码重新创建同一文件之前删除该文件,因为文件名永远不会改变。 【参考方案1】:
Dim FSO 'As FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")

If (FSO.FileExists("C:\Foobar.txt") Then
    statements
End If

Set FSO = Nothing

【讨论】:

以上是关于使用 fso.GetAbsolutePathName(".") 检查后如何设置正确的语法 if (fso.FileExists("")) [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)