使用& powershell .\other.ps1
和& .\other.ps1
的行为有何区别?
特别是,如果other.ps1
中出现错误,它们之间有什么不同?
使用& powershell .\other.ps1
和& .\other.ps1
的行为有何区别?
特别是,如果other.ps1
中出现错误,它们之间有什么不同?
在前一种情况下,您会获得另一个PowerShell进程,脚本无法读取当前会话中定义的变量。
PS> $foo = 'bar'
PS> 'Write-Host $foo'|Set-Content x.ps1
PS> & powershell .\x.ps1
PS> & .\x.ps1
bar
x.ps1
的内容为throw error
,并比较try { powershell.exe ./x.ps1; "success? $?; $LastExitCode" } catch { "caught $_; success? $?; $LastExitCode" }
和try { ./x.ps1; "success? $?; $LastExitCode" } catch { "caught $_; success? $?; $LastExitCode" }
的输出。 - Emperor XLII