PowerShell按顺序执行Invoke-Expression调用

时间:2014-10-19 23:20:06

标签: powershell

我有一个简短的PowerShell脚本,可以节省我的打字时间...也许将来当这个片段有效时......

第一个Expression启动带有一些参数的可执行文件(汇编程序)。 如果此工具退出且没有错误,则在Python启动程序py.exe的帮助下启动Python脚本。除此之外,我收集所有格式化的汇编程序文件(* .fmt)并删除它们。

当我运行此脚本时,首先执行Python脚本,然后运行汇编程序。

我在这里缺少什么?

Invoke-Expression "..\asm\KCPSM6.exe -c4096 main_KC705.psm"

if ($LastExitCode -ne 0) {
    Write-Host "ERROR: KCPSM6.exe return with an error code." -ForegroundColor Red
    exit 1
} else {
    Invoke-Expression "py.exe -3 ..\py\psmProcessor.py -v main_KC705.log"

    $fileList = Get-ChildItem -Path ..\psm -Recurse -Filter *.fmt
    $fileList += Get-ChildItem -Path ..\lib -Recurse -Filter *.fmt
    $fileCount = $fileList.Count
    Write-Host "Deleting $fileCount temporary files."
    if ($fileCount -gt 0) {
        $fileList | Remove-Item
    }
}

1 个答案:

答案 0 :(得分:3)

尝试使用Start-Process启动它,如下所示:

Start-Process X:\asm\KCPSM6.exe -argumentlist @("-c4096", "main_KC705.psm") -wait

有关如何启动可执行文件的更多参考,请查看此处:

Technet