在Powershell中获取Invoked-Expression的结果?

时间:2014-04-25 13:26:11

标签: powershell

我需要在Powerhsell脚本中测试一些档案,因为我正在使用7z自动压缩大量备份文件。

现在我知道通常在程序运行时,如果一切正常完成,则返回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)

当我在Powershell中使用Invoke-Expression运行7z来测试存档时,我需要能够提取程序返回值以确保存档测试成功;有没有办法从Invoke-Expression获得此值?

我从Invoke-Expression调用以下命令:

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

我所说的价值又是什么?我知道如果你用C ++编写程序,你会从main方法返回值,但我不确定它的名称。

1 个答案:

答案 0 :(得分:3)

您可以将路径括在语音标记中,即

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

并且您要查找的值称为$LASTEXITCODE