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個樣品都應該產生相同的結果。請提供證據。 –