【问题标题】:Powershell Start and stop additional powershell instance foreach loopPowershell 启动和停止额外的 powershell 实例 foreach 循环
【发布时间】:2017-02-08 16:07:24
【问题描述】:

我有一个 powershell 脚本,我正在生成其他 powershell 实例来运行 cmdlet。

我需要能够从嵌套的 foreach 循环中 Start-Process (一个 powershell 实例)并允许进程运行,然后在完成时停止该进程。

foreach($thing in $things)
    foreach($stuff in $stuffs)
          start-process powershell.exe -nonewwindow | get-cmdichooseasanewcmd | export-csv -path stuff
          stop-process same instantiated process

当我的 foreach 循环完成其任务时,我如何停止专门绑定到它的进程?

【问题讨论】:

  • 你有什么问题?
  • 编辑添加我的问题。我急忙按问问题!
  • 有没有办法生成多个 powershell.exe 实例来运行我的命令,然后在完成后退出进程?
  • “生成多个 powershell.exe 实例来运行我的命令” - 为什么需要这样做?

标签: powershell


【解决方案1】:

如果您不做任何需要凭据的事情,您可以使用作业。

$job = Start-Job { # Do stuff }
$job.StopJob()

任何涉及凭据的事情都会引发双跳的愤怒,但我认为它也不会像您在问题中运行它的方式那样起作用,所以应该不是问题。

您也可以使用运行空间,但这是一大堆蠕虫。如果你想去那里,请参阅this link

【讨论】:

  • 不,但它们比作业复杂得多
  • 而且更快;)
猜你喜欢
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多