Windows Powershell 锁定

Windows Powershell 锁定

如何防止在 Windows Powershell 上运行命令时锁定?我知道在 Linux 上,您可以在命令末尾添加 &,这样您就可以继续使用终端而无需关闭该进程。Windows Powershell 有类似的功能吗?

答案1

如何防止运行命令时 Windows Powershell 锁定?

使用Start-Jobcmdlet 在后台启动作业。

&这相当于在 Unix/Linux 中在命令末尾使用的 Powershell 。


PowerShell 后台作业

创建 PowerShell 后台作业的最简单方法是使用 cmdlet Start-Job。您可以使用 cmdlet 指定脚本块。例如,以下命令运行一个简单的脚本块,以后台作业的形式获取 1 到 50 之间的数字:

Start-Job {1..50}

您可以使用以下单行命令将参数传递给脚本块:

Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25

或者您可以运行脚本:

Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential [email protected])

您可以在下面看到这三个命令的结果。我在 PowerShell 3.0 中运行了这些命令。但是,它们也可以在 PowerShell 2.0 中运行,尽管您看不到 PSJobTypeName 列。

图 1:在后台运行脚本块和脚本

输出的Start-Job是作业队列对象。您可以使用-Job cmdlet 来管理作业及其结果。您可以通过 ID 引用作业。在上图中,请注意作业 ID 如何从 1 跳到 3 再跳到 5。

来源PowerShell 后台作业

上面的链接包含了更多细节,涵盖了以下主题:

  • 使用Get-WMIObjectCmdlet 创建后台作业

  • 使用Invoke-CommandCmdlet 创建后台作业

  • 管理后台作业

  • 获取作业结果

  • 停止并等待作业


进一步阅读

答案2

作为 Jobs 的替代方案,你可以使用运行空间:它们在后台运行命令时提供更高的性能和更少的开销。

实现方式:

相关内容