使用vbscript获取批处理文件的退出值

使用vbscript获取批处理文件的退出值,vbscript,Vbscript,请提供一些帮助,我是批处理文件和vbscript的初学者。 如果你能帮我解决我的问题,我将不胜感激 鉴于: a: b: b:示例代码1和2对我很好,但我需要示例代码0和3。 对于示例代码1,我总是遇到一个错误:系统无法找到所选的文件 ,而对于示例代码3,失败时只返回0,成功时返回1,而不是批处理文件的返回值 谢谢,刚才我的问题已经解决了。我发现,即使我已经有了“cmd/c fileFullPath”双引号。当文件夹名称包含一些空格时,将导致找不到-->文件的问题。现在我使用的是“cmd/c”“f

请提供一些帮助,我是批处理文件和vbscript的初学者。 如果你能帮我解决我的问题,我将不胜感激

鉴于:

a:

b:

b:示例代码1和2对我很好,但我需要示例代码0和3。 对于示例代码1,我总是遇到一个错误:系统无法找到所选的文件 ,而对于示例代码3,失败时只返回0,成功时返回1,而不是批处理文件的返回值


谢谢,

刚才我的问题已经解决了。我发现,即使我已经有了
“cmd/c fileFullPath”
双引号。当文件夹名称包含一些空格时,将导致找不到-->文件的问题。现在我使用的是
“cmd/c”“fileFullPath”“”


很抱歉,我的第一篇文章缺少信息。下次我会尽最大努力把它说清楚。非常感谢D

当我测试示例代码3时,它工作得很好。但是,退出代码0通常意味着“成功”,因此在出现错误时不应返回它。我还建议使用
exit/b
而不仅仅是
exit
。感谢@AnsgarWiechers的回复。我以前已经尝试过使用
exit/b
,但仍然不起作用。考虑到我要搜索的文件确实存在。对于示例代码1和2,它给出了2的值。在使用示例代码3时,指定了批处理文件的完整路径,我一直将1作为输出。考虑到我必须通过批处理文件的完整路径访问批处理文件,是否有其他方法使输出与示例代码1和2相同。谢谢。只有当批处理脚本位于当前工作目录中时,代码1和代码2才可以工作。除此之外,所有4个样品应产生相同的结果。请提供证据。你好@Ansgar Wiechers。是的,代码1和代码2仅以这种方式工作。这就是为什么我需要0和3。它没有产生相同的结果,因为0&3结果等于1表示失败,感谢kick-->“0通常表示成功”。
@echo off
pushd "C:\Program Files\appName" && popd
IF ERRORLEVEL 1 EXIT 0
pushd "C:\Program Files\appName"
IF EXIST application.exe GOTO Installed
popd
EXIT 1
:Installed
EXIT 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Set objFile = objFSO.OpenTextFile(listFile, 1)

dim sh , res

objName = objFSO.GetTempName
objTempFile = objName
'---- Sample Code 0 ----------------------'
'set sh = WScript.CreateObject("WScript.shell")
'res = sh.run("fileFullPath",0,true)
'wScript.echo  res
'----Sample Code 1 ---------------'
'set sh = WScript.CreateObject("WScript.shell")
'res = sh.run("fileName",0,true)
'wScript.echo  res
'---- Sample Code 2 ---------------------
'set sh = WScript.CreateObject("WScript.shell")
'res = sh.run("cmd /c fileName",0,true)
'wScript.echo  res
'---- Sample Code 3 ---------------------
'set sh = WScript.CreateObject("WScript.shell")
'res = sh.run("cmd /c fileFullPath",0,true)
'wScript.echo  res