2012-07-09 16 views

Respuesta

12

se obtiene otro proceso de PowerShell en el primer caso y de la secuencia de comandos no puede leer las variables definidas en la sesión actual:

PS> $foo = 'bar' 
PS> 'Write-Host $foo'|Set-Content x.ps1 
PS> & powershell .\x.ps1 

PS> & .\x.ps1 
bar 
+0

Gracias. ¿Hay alguna diferencia en el manejo de errores también? –

+1

@ColonelPanic: al igual que las variables, las excepciones no cruzarán los límites del proceso. Cambie el contenido de 'x.ps1' a' throw error', y compare el resultado de 'try {powershell.exe ./x.ps1; "success? $ ?; $ LastExitCode"} catch {"caught $ _; success? $ ?; $ LastExitCode"} 'y' try {./x.ps1; "success? $ ?; $ LastExitCode"} catch {"caught $ _; success? $ ?; $ LastExitCode"} '. –

Cuestiones relacionadas