PowerShell脚本A调用脚本B,然后在脚本B仍在运行时关闭脚本A.

时间:2017-01-31 08:49:49

标签: powershell powershell-v3.0 powershell-v5.0

我目前有一个简单的脚本(A),它使用Invoke-Expression来调用脚本B.

#Call Script
$command = '\\BoxA\PowerShellScripts$\PS_CopyUIAutomationOutput.ps1'
Try
{Invoke-Expression $command }
Catch
{
Write-host "Error: "$_
}

但是当它执行此操作时,它会保持脚本A运行。我想要做的是脚本A调用脚本B然后脚本A关闭,而脚本B仍在运行日志记录完成到脚本B的共享路径,所以我不需要捕获任何错误或登录脚本A.

3 个答案:

答案 0 :(得分:1)

只需使用exit关键字:

Try
{Invoke-Expression $command }
Catch
{
Write-host "Error: "$_
}
exit

编辑:

如果你希望它在运行命令后直接退出,只需将它放在调用表达式之后,如下所示:

Try
{Invoke-Expression $command
exit}
Catch
{Write-host "Error: "$_
}

答案 1 :(得分:0)

使用Stop-Process和自动变量$PID来释放脚本A的会话并关闭PS窗口。

$command = '\\BoxA\PowerShellScripts$\PS_CopyUIAutomationOutput.ps1'
Try
{
Invoke-Expression $command
}
Catch
{
Write-host "Error: "$_
}
Stop-Process -Id $PID

答案 2 :(得分:0)

只需使用Start-Process

即可
Start-Process -FilePath PowerShell.exe -Argumentlist $Command
exit

这将在另一个进程中启动$ command并继续到下一行

的问候,

Kvprasoon