我有一個簡短的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