powershell - 在 PowerShell 中创建批处理作业

标签 powershell batch-file

想象一个 DOS 风格的 .cmd 文件,它用于以正确的顺序启动相互依赖的窗口应用程序。

例子:
1) 通过调用带参数的 exe 启动服务器应用程序。
2)等待服务器初始化(或固定的时间)。
3) 通过调用带参数的 exe 启动客户端应用程序。

在 PowerShell 中完成此类批处理作业的最简单方法是什么?

最佳答案

请记住,PowerShell 可以访问 .Net 对象。 Blair Conrad 建议的开始 sleep 可以通过调用 WaitForInputIdle 来代替服务器进程,以便您在启动客户端之前知道服务器何时准备就绪。

$sp = get-process server-application
$sp.WaitForInputIdle()

您也可以使用 Process.Start启动进程并让它返回确切的进程。然后你不需要获取过程。
$sp = [diagnostics.process]::start("server-application", "params")
$sp.WaitForInputIdle()
$cp = [diagnostics.process]::start("client-application", "params")

关于powershell - 在 PowerShell 中创建批处理作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402/

相关文章:

powershell - 以编程方式设置 Azure 记录合作伙伴

windows - SET 和 SETX 都没有设置 %PATH% 的值

batch-file - 使用批处理删除文件中的部分字符串

utf-8 - 文件名使用utf8

powershell - 执行需要来自 Jenkins 管道的参数的 Powershell 脚本

powershell - 如何在 Azure DevOps 上的 Windows 管道中为 Go 生成 syso 文件

powershell - 如何防止 Get-ChildItem 遍历特定目录?

svn - 阻止命令 "del/s"进入文件夹

batch-file - 批处理文件编辑Hosts文件-没有效果?

powershell - 导入 IP 地址列表、解析其主机名、将 IP 和主机名导出到电子表格