在 bash 中,可以通过按下 Control Z 键来暂停已经在前台运行的进程。然后,您可以使用 将其带回前台,fg
或使用 让其继续在后台运行bg
。
有没有办法用 power shell 来做到这一点?这个问题询问有关尚未启动的进程的问题,但我想知道已在运行的进程的答案。
答案1
简短回答:否
但还是有希望的:https://github.com/PowerShell/PowerShell/issues/3229
答案2
如果您直接启动命令则不能。
但
你可以这样做(是的,这是一个丑陋的伎俩):
- 使用以下命令在后台启动命令:
Start-Job -ScriptBlock { <your_command> }
- 然后将其拉到前台
Receive-Job -Wait -Id <your_job_id>
现在你的工作已经处于前台。
- 如果你想把它放在后台,请输入Ctrl-c
- 如果要再次将其置于前台,请再次输入:
Receive-Job -Wait -Id <your_job_id>
答案3
您可以使用 PowerShell 作业 cmdlet 来实现您的目标。
PowerShell 中有 6 个与作业相关的 cmdlet。
- 找工作
- 获取当前会话中运行的 Windows PowerShell 后台作业
- 接收工作
- 获取当前会话中 Windows PowerShell 后台作业的结果
- 删除作业
- 删除 Windows PowerShell 后台作业
- 开始工作
- 启动 Windows PowerShell 后台作业
- 停止工作
- 停止 Windows PowerShell 后台作业
- 等待工作
- 禁止显示命令提示符,直到会话中运行的一个或所有 Windows PowerShell 后台作业完成为止
如果你对此感兴趣,你可以下载示例如何在 PowerShell 中创建后台作业