2014-04-25 56 views
3

我需要在Powerhsell腳本中測試一些存檔,因爲我使用7z自動壓縮了一堆備份文件。在Powershell中獲取調用表達式的結果?

現在我知道,通常當程序運行時,如果一切正常完成,它將返回0;但如果沒有正常完成,會返回其他值。

例如我們在Scheduled Tasks中看到,任務成功完成時最後結果顯示0x0,如果沒有,則顯示其他值。

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在PowerShell中運行7z測試檔案,我需要能夠拉程序的返回值,以確保存檔測試成功;有沒有辦法從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/how-to-pipe-output-of-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