是否可以异步调用powershell cmdlet?

8 powershell asynchronous

假设我有cmdlet1和cmdlet2,两者都是长时间运行的任务.通常我会有一个批处理文件,按顺序调用两个cmdlet:

call powershell cmdlet1
call powershell cmdlet2
Run Code Online (Sandbox Code Playgroud)

反正有异步设置它们吗?

Joe*_*oey 9

如果您使用的是PowerShell 2,则可以使用后台作业.

从帮助:

about_Jobs

当您启动后台作业时,即使作业需要较长时间才能完成,命令提示符会立即返回.作业运行时,您可以在不中断的情况下继续在会话中工作.

所以你可以使用

Start-Job -ScriptBlock { cmdlet1 }
Start-Job -ScriptBlock { cmdlet2 }
Run Code Online (Sandbox Code Playgroud)

但是,即使在本地运行作业,也需要为远程处理配置PowerShell.

我也偶然发现了这个:


Noo*_*ilk 0

尝试:

cmd.exe /c call powershell cmdlet1
cmd.exe /c call powershell cmdlet2
Run Code Online (Sandbox Code Playgroud)

  • 这些仍然会在当前控制台窗口中依次执行。不过,“cmd /c start powershell cmdlet1”可以工作。 (6认同)