2014-04-25 3 views
3

7z으로 여러 백업 파일의 압축을 자동화 할 때 Powerhsell 스크립트에서 일부 아카이브를 테스트해야합니다.Powershell에서 호출 된 식의 결과 가져 오기?

이제 정상적으로 프로그램이 실행될 때 모든 것이 정상적으로 완료되면 0을 반환한다는 것을 알고 있습니다. 정상적으로 완료되지 않으면 다른 값을 반환합니다.

예를 들어 Scheduled Tasks에서 마지막 결과는 작업이 성공적으로 완료되면 0x0을 표시하고 그렇지 않은 경우 다른 값을 표시합니다. 내가 아카이브를 테스트하기 위해 7z를 실행하는 PowerShell에서 Invoke-Expression를 사용하는 경우

Scheduled Tasks window with the Last Result column displaying 0x0 at successful tasks and 0x5 for non successful tasks (though it could be another value for unsuccessful tasks)

, 나는 아카이브가 성공적으로 테스트 있는지 확인 프로그램 반환 값을 끌어 할 수 있어야합니다; Invoke-Expression에서이 값을 얻을 수있는 방법이 있습니까?

나는 호출 표현에서 다음 명령을 호출하고 있습니다 :

7z t C:\backups\somezip.7z *.* -r 

이 또한 제가 이야기의 값이 무엇을

라고? 나는 당신이 C++로 프로그램을 작성한다면 main 메쏘드의 값을 리턴하지만 그것이 무엇인지 불확실하다는 것을 안다.

+1

Invoke-Expression을 사용하는 이유를 묻습니다. 당신이 그것을 필요로하는지 확실히 압니까? 다음은 또한 당신을 도울 수 있습니다 : [http://stackoverflow.com/questions/12320275/how-to-pipe-output-of-invoke-expression-to-string](http://stackoverflow.com/questions/12320275)/invoke-expression-to-string) – FLGMwt

+0

@FLGMwt'Invoke-Expression'을 사용하는 좋은 이유는 무엇입니까? 호출 된 명령 내의 경로에 공백이 있습니까? – leeand00

+0

@FLGMwt 출력에 관심이 없습니다. 결과에 관심이 있습니다. – leeand00

답변

3

당신은 speechmarks의 경로가

& "C:\Program Files\7-Zip\7z" t "C:\backups\somezip.7z" *.* -r

을 즉 둘러싸 수 있으며, 당신이 찾고있는 값은 $LASTEXITCODE이라고합니다.

관련 문제