0
请借给我一些帮助,我是一个批处理文件和vbscript的初学者。 如果您能帮我解决我的问题,我将不胜感激。使用vbscript获取批处理文件的退出值
考虑:
一个:
@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
B:
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
的B:示例代码1个& 2正常工作与我,但我需要的示例代码0 & 3。带示例代码1的 我总是收到一个错误:系统找不到选中的文件 ,同时带有示例代码3它只会在失败时返回0,如果成功则返回1,而不是批处理文件的返回值。
谢谢,
当我测试它时,示例代码3工作得很好。然而,退出代码0通常意味着“成功”,所以如果出现错误,您不应该退回。我也建议使用'exit/b'而不是'exit'。 –
感谢您的回复@AnsgarWiechers。 我已经尝试过使用'exit/b',但它仍然不起作用。考虑到我要搜索的文件确实存在。使用示例代码1和2时,它的值为2.使用示例代码3时,指定了批处理文件的完整路径,我继续将1作为输出。是否有另一种方法可以让我获得与示例代码1和2相同的输出,因为我必须通过完整路径访问批处理文件。谢谢。 – JSun
只有批处理脚本位于当前工作目录中时,代码1和2才能工作。除此之外,所有4个样品都应该产生相同的结果。请提供证据。 –