我有一个简短的PowerShell脚本节省了我的打字时间......也许在这个时候作品网页摘要的未来......PowerShell的执行调用,表达式调用不是为了
第一个表达式启动一个可执行的一些参数(汇编程序)。 如果此工具没有错误地退出,Python脚本将在Python启动程序py.exe的帮助下启动。除此之外,我收集所有格式化的汇编程序文件(* .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
}
}
为什么你甚至可以使用调用表达式,并不直接运行它?关于不同的执行时间:powershell只是开始工作,并没有等到它完成,它只是继续下去,所以你的第二个命令将在汇编程序完成其工作之前被调用,我猜。对于一个可能的解决方案,请参阅我的答案 – Paul 2014-10-19 23:46:27