2014-03-06 1 views
0

몇 가지 도움을주십시오. 배치 파일과 vbscript로 초보자입니다. 내 문제를 해결하도록 도와 주시면 감사하겠습니다. 을 감안할 때vbscript를 사용하여 배치 파일의 종료 값 가져 오기

:

A :

@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을 반환하고 배치 파일의 반환 값은 반환하지 않습니다.

고마워,

+0

예제 코드 3은 테스트 할 때 정상적으로 작동했습니다. 그러나 종료 코드 0은 일반적으로 "성공"을 의미하므로 오류가 발생하면 반환하지 않아야합니다. 나는 또한 단지'exit' 대신'exit/b'를 사용할 것을 권장합니다. –

+0

@AnsgarWiechers 응답에 감사드립니다. 이전에'exit/b'를 사용하려했으나 여전히 작동하지 않습니다. 내가 검색 할 파일이 존재한다는 것을 고려하면. 샘플 코드 1 및 2는 2의 값을 제공합니다. 샘플 코드 3을 사용하는 동안 출력을 1로 유지하는 배치 파일의 전체 경로를 지정했습니다. 배치 파일에 전체 경로로 액세스해야한다는 이유로 주어진 샘플 코드 1 및 2와 동일한 결과를 얻는 방법이 있습니까? 감사. – JSun

+0

코드 1과 2는 배치 스크립트가 현재 작업 디렉토리에있는 경우에만 작동해야합니다. 그 외에 4 개의 샘플 모두 동일한 결과를 산출해야합니다. 증거를 제공해주십시오. –

답변

1

나는 얼마 전에 문제를 해결했다. 나는 심지어 그것을 발견했다 - 나는 벌써 "cmd /c fileFullPath"를 큰 따옴표로 가지고 있었다. 폴더 이름에 공백이 있으면 "파일을 찾을 수 없습니다"라는 문제가 발생할 수 있습니다.. 이제 "cmd /c ""fileFullPath"""을 대신 사용하고 있습니다.

정보가 부족하여 죄송합니다. 다음 번에 더 명확하게하기 위해 최선을 다할 것입니다. 고마워. : D

관련 문제