Vbscript wshshell.run找不到文件

Vbscript wshshell.run找不到文件,vbscript,Vbscript,我可以从命令行运行 oradim.exe -delete -sid DataWare 它在我的路径中,因此我可以从任何位置执行它(我已经测试过) 失败的是 oraCMD = "oradim.exe -delete -sid DataWare" errCMD = wshShell.exec(oraCMD) if errCMD <> 0 Then msgbox "ERROR: " & errCMD wscript.quit end if oraCMD=“or

我可以从命令行运行

oradim.exe -delete -sid DataWare
它在我的路径中,因此我可以从任何位置执行它(我已经测试过)

失败的是

oraCMD = "oradim.exe -delete -sid DataWare"
errCMD = wshShell.exec(oraCMD)

if errCMD <> 0 Then
    msgbox "ERROR: " & errCMD
    wscript.quit
end if
oraCMD=“oradim.exe-delete-sid DataWare”
errCMD=wshShell.exec(oraCMD)
如果errCMD为0,则
msgbox“错误:&errCMD
wscript.quit
如果结束
在此配置中,我得到错误“对象不支持此属性或方法”。如果我使用
.run
而不是
.exec
我会得到“系统找不到指定的文件”

有什么想法吗?

您的代码混合了.Run(返回一个数字错误代码)和.Exec(返回一个对象并需要一个Set赋值)。如果WSHShell启动的进程找不到oradim,则此进程无法获取用于测试的shell的路径。您是如何启动.vbs的?简单解决方法:指定oradim.exe的完整路径

仔细想想:如果文件规范包含空格,请记住引用该规范:

oraCMD = """c:\program files\ora labora\oradim.exe"" -delete -sid DataWare"

您是否尝试过errCMD=wshShell.run(oraCMD)?

解决问题的方法是在命令行中调用CMD

oraCMD = "CMD /c oradim.exe -delete -sid"

将run命令更改为wshShell.run(“CMD/C oradim.exe-delete-sid Dataware”,1,True)修复了该问题。但我不确定原因。@Chris:文件规范中有空格吗?oradim文件(E:\app\product\11.2.0\dbhome\u 1\bin)的路径中没有空格,但不需要,因为它是path evn变量的一部分。我确实尝试了完整路径(实际上我就是这样开始的),但它仍然有相同的问题