读取vbscript中的文件时引发错误,过程调用无效或参数错误
我有下面的代码..如果我使用静态strInputPath3,代码工作正常,但是如果我使用strInputPath3,代码会出错,并带有一个错误无效的过程调用或参数..有人能告诉我我这里做错了什么吗读取vbscript中的文件时引发错误,过程调用无效或参数错误,vbscript,Vbscript,我有下面的代码..如果我使用静态strInputPath3,代码工作正常,但是如果我使用strInputPath3,代码会出错,并带有一个错误无效的过程调用或参数..有人能告诉我我这里做错了什么吗 strInputPath1 = "C:\test" & "\" & "css" & "\" & "main.css" strInputPath3 = "C:\test\css\main.css" Set txsInput1 = FSO.OpenTextFile(
strInputPath1 = "C:\test" & "\" & "css" & "\" & "main.css"
strInputPath3 = "C:\test\css\main.css"
Set txsInput1 = FSO.OpenTextFile(strInputPath1, 1)
如果将VBScript可以用作字符串的内容馈送到.OpenTextFile,则该方法将尝试打开一个文件,并可能抛出“未找到文件”错误 要获得“无效过程调用”错误,必须传递一些不安全的信息,例如空值:
>> strInputPath1 = Empty
>> set f = goFS.OpenTextFile(strInputPath1,1)
>>
Error Number: 5
Error Description: Invalid procedure call or argument
这些事实使你极有可能
- 在初始化和在.OpenTextFile()中使用变量strInputPath1之间更改了变量strInputPath1的内容
- 或者初始化变量X并使用变量Y(Y&X可能是“strInputPath1”的变体)
- 或者在不同的作用域(~Functions/Subs)中初始化并使用两个同名变量
>> Set goSF = New RegExp
>> set f = goSF.OpenTextFile(strInputPath1,1)
>>
Error Number: 438
Error Description: Object doesn't support this property or method
仍然没有“无效过程调用或参数”错误。由于goSF现在是一个RegExp,让我们忽略特定的方法(名称)-OpenTextFile()-看看如果调用出错会发生什么:
>> WScript.Echo TypeName(goSF)
>> Set ms = goSF.Execute()
>>
IRegExp2
Error Number: 450
Error Description: Wrong number of arguments or invalid property assignment
>> Set ms = goSF.Execute(Null)
>>
Error Number: 13
Error Description: Type mismatch
所以我的主张仍然有效。“无效的过程调用或参数”错误是由于向有效FSO上调用的.OpenTextFile()方法馈送Empty造成的。如果将VBScript可以用作字符串的内容馈送到.OpenTextFile,该方法将尝试打开一个文件,可能会抛出“找不到文件”错误 要获得“无效过程调用”错误,必须传递一些不安全的信息,例如空值:
>> strInputPath1 = Empty
>> set f = goFS.OpenTextFile(strInputPath1,1)
>>
Error Number: 5
Error Description: Invalid procedure call or argument
这些事实使你极有可能
- 在初始化和在.OpenTextFile()中使用变量strInputPath1之间更改了变量strInputPath1的内容
- 或者初始化变量X并使用变量Y(Y&X可能是“strInputPath1”的变体)
- 或者在不同的作用域(~Functions/Subs)中初始化并使用两个同名变量
>> Set goSF = New RegExp
>> set f = goSF.OpenTextFile(strInputPath1,1)
>>
Error Number: 438
Error Description: Object doesn't support this property or method
仍然没有“无效过程调用或参数”错误。由于goSF现在是一个RegExp,让我们忽略特定的方法(名称)-OpenTextFile()-看看如果调用出错会发生什么:
>> WScript.Echo TypeName(goSF)
>> Set ms = goSF.Execute()
>>
IRegExp2
Error Number: 450
Error Description: Wrong number of arguments or invalid property assignment
>> Set ms = goSF.Execute(Null)
>>
Error Number: 13
Error Description: Type mismatch
所以我的主张仍然有效。错误“无效的过程调用或参数”是由于向方法提供了Empty而导致的。OpenTextFile()在有效的FSO上调用。这是一个老问题,但今天它让我有些困惑: 如果您试图打开一个您认为是ASCII但实际上是Unicode的文件,则OpenTextFile()也会触发无效的过程调用 看 所以 将成为
Set txsInput1 = FSO.OpenTextFile(strInputPath1, 1, false, -1)
这是一个老生常谈的问题,但今天我却被它咬了一口: 如果您试图打开一个您认为是ASCII但实际上是Unicode的文件,则OpenTextFile()也会触发无效的过程调用 看 所以 将成为
Set txsInput1 = FSO.OpenTextFile(strInputPath1, 1, false, -1)
这段代码对我来说很好(只要我为FSO创建Scripting.FileSystemObject)。您是否在其他地方将strInputPath1声明为另一种类型?我看不出你那些含糊不清的话。。。你可以包含更多的代码或pastebin链接。谢谢..获得了名为错误的fso,该代码对我来说很好(只要我为fso创建Scripting.FileSystemObject)。您是否在其他地方将strInputPath1声明为另一种类型?我看不出你那些含糊不清的话。。。你可以包含更多的代码或粘贴库链接。谢谢。fso的名称不对