call main()
sub main()
Dim scmd
Set scmd = "c:\windows\system32\cscript.exe //nologo c:\s.vbs"
createobject("wscript.shell").run scmd,0,false
end sub它给了我错误:
Object required: '[string: "c:\windows\system32\"]' Code 800A01A8
发布于 2014-05-13 15:45:18
更新 由于尚不清楚,所以最好指出您的
Object Required问题是由于以下行设置scmd = "c:\windows\system32\cscript.exe //nologo c:\s.vbs“ 这是因为需要一个对象,但是您要为它分配一个字符串,通过删除Set,您的代码将工作(就像Ekkehard.Horner有pointed out一样)。
下面是我对形势的解释。首先,查看您的代码,它看起来几乎是将WScript.Shell对象的实例化与.Run()方法的命令行混合在一起。这是我第一次尝试分解代码,重新排列,然后把它重新组合在一起。
原始答案
Set scmd应该实例化WScript.Shell (正如Ekkehard.Horner指出的,您可以一次性引用Server.CreateObject("WScript.Shell").Run,但我不推荐)。.Run()应该由实例化的scmd对象执行,并传递命令行执行。这里有一个例子,我已经重命名了一些变量(例如,scmd到cmd )。
Call main()
Sub main()
'Renamed variables to cmd is your object and cmdline is your file path.
Dim cmd, cmdline
'Instantiate WshShell object
Set cmd = Server.Createobject("WScript.Shell")
'Set cmdline variable to file path
cmdline = "c:\windows\system32\cscript.exe //nologo c:\s.vbs"
'Execute Run and return immediately
Call cmd.Run(cmdline, 0, False)
End Sub要考虑的事情
在经典ASP中使用WScript.Shell运行可执行文件时,需要考虑一些问题;
发布于 2014-05-13 17:21:10
作为
>> WScript.Echo CreateObject("WScript.Shell").CurrentDirectory
>>
E:\trials\SoTrials\answers\trials\AlgoTaBu\SuSo\wsf证明,根本没有任何规则或法律规定“您的Set scmd应该实例化WScript.Shell”。将命令放在字符串变量scmd (或者更好的sCmd)中执行,而不是为只使用一次的值创建变量是很好的做法。
修改后的版本(减去愚蠢的一组):
call main()
sub main()
Dim scmd
scmd = "c:\windows\system32\cscript.exe //nologo c:\s.vbs"
createobject("wscript.shell").run scmd,0,false
end sub和Lankymart的版本一样好用。
把所有事情都拼出来的:
"site:stackoverflow.com vbscript "object required" Set"的结果是1500个点击量。即使大部分的点击与"Set x = 'non-object'的错误无关,这显然是太多了。要解释/原谅这些简易爆炸装置,你必须考虑到基本是一种石器时代的语言。"Set x = 'non-object'的错误感到惊讶。如果这种情况发生得很频繁(或者更频繁),他/她应该感到羞愧(并保持沉默)。最重要的是,这个问题不应该污染这个网站。wtf
Set x = " ---- stop or be damned!!!
Set x = obj.getNumber() + 4 ---- oh no!!!发布于 2014-05-13 14:13:54
我不确定,试试换衣服吧
Set scmd = "c:\windows\system32\cscript.exe //nologo c:\s.vbs"至
Set scmd = "c:\windows\system32\cscript.exe" //nologo "c:\s.vbs"https://stackoverflow.com/questions/23633643
复制相似问题