【发布时间】:2015-02-25 14:45:44
【问题描述】:
外部.ps1:
& "$env:WINDIR\syswow64\WindowsPowerShell\v1.0\powershell.exe" -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command "& '.\Inner.ps1'; Write-Host "BLOCK: $LastExitCode"; exit $LastExitCode"
Write-Host "OUTSIDE: $LastExitCode"
Inner.ps1:
exit 3
执行Outer.ps1 输出:
BLOCK: 1
OUTSIDE: 1
什么,为什么? Inner.ps1 明显退出,退出代码为 3。有什么问题?
注意:如果我将Inner.ps1 更改为返回0,我会收到以下输出:
BLOCK: 0
OUTSIDE: 0
不知何故,除了 0 之外的所有其他代码都默认为 1,为什么?
【问题讨论】:
-
从
& '.\Inner.ps1'中删除单引号会发生什么?我不认为 inner 被称为。当我删除单引号时它正在工作 -
同样的结果,但是,如果 Inner.ps1 的名称中有空格,它就不再起作用了。
-
是的.. 正在 ISE 中进行测试,我只有在手动运行 Inner 时才让它工作,所以我破坏了测试。回到绘图板