在Powershell中使用start-process和-wait命令

脚本之家收集整理的这篇文章主要介绍了在Powershell中使用start-process和-wait命令脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是Power shell的新手,并没有太多的编程背景,只是试图将它用于软件包装.无论如何,我发现了带-Wait参数的start-process命令,它适用于大多数事情.我注意到的是,它不仅等待你指定的进程,它等待任何子进程,即使在主进程不再运行之后.通常这很好,但我有一个奇怪的情况.我正在使用start-process运行复杂的Oracle批处理文件.批处理文件最终运行setup.exe,这是我真正想要等待的,但是其他进程也会产生永不停止.因此,如果我使用-wait参数,即使setup.exe不再运行,脚本也不会停止.我发现的最接近的是使用这个:

  1. saps -FilePath "Path\config.bat" -ArgumentList "arguments"
  2. Start-Sleep -s 10
  3. Wait-Process -Name "setup"

这有效,但我认为没有使用超时命令会有更好的方法.有任何想法吗?

解决方法

你可以轻松使用这个命令:

  1. $myprocss = Start-Process "powershell" -PassThru
  2. $myprocss.WaitForExit()

当进程结束时,此命令将继续.

总结

以上是脚本之家为你收集整理的在Powershell中使用start-process和-wait命令全部内容,希望文章能够帮你解决在Powershell中使用start-process和-wait命令所遇到的程序开发问题。

原文地址:https://www.cnblogs.com/albert-/p/12693887.html

时间: 2024-10-08 10:12:22

在Powershell中使用start-process和-wait命令的相关文章

(17)Powershell中的重定向运算符

默认情况下,Powershell 把输出发送到屏幕显示.但是,Powershell也可以将输出重定向至一个文本文件,或将错误输出重定向至常规输出流. 重定向运算符有什么用 ? 重定向运算符意味着我们可以将命令的输出信息输出到指定的文件,完全满足脚本中的log的要求,即可以利用重定向打印脚本或命令执行的详细信息. Powershell 中有以下重定向运算符. 运算符 说明 示例 > 将输出发送到指定文件. PS D:\> Get-Process > process.txt >>

(15)Powershell中的类型运算符

这节介绍 Powershell 中的类型运算符. Powershell 中的类型运算符可以与 .Net Framework 类型协同使用,可以用来判断一个对象是否是指定的 .Net Framework 类型的一个实例,或是判断一个对象是否可以转换为 .Net Framework 类型. Powershell 支持以下类型运算符 运算符 说明 示例 -is 如果对象是指定的 .Net Framework 类型则返回 TRUE,否则返回 FALSE PS C:\> "abc" -is

(23)Powershell中的首选项变量

上一节介绍了 Powershell 中的环境变量,本节介绍 Powershell 中的首选项变量,这些变量的作用与环境变量类似,都是Powershell中的内置变量,也可以对这些值进行更改.需要注意的是,首选项变量影响 PowerShell 操作环境以及在该环境中运行的所有命令.在很多情况下,cmdlet 带有的参数可用于替代特定命令的首选行为. 以下是 Powershell 中常见的首选项变量及其默认值. 首选项变量 默认值及说明 $ConfirmPreference  High $Debug

使用管道符在PowerShell中进行各种数据操作

最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下. 无论是在Linux中写Bash脚本还是在Window上写PowerShell,管道符”|“是一个非常有用的工具.它提供了将前一个命令的输出作为下一个命令的输入的功能.在数据处理中,我们也可以使用管道符对数据进行各种操作. Import&Export导入导出 先说导入导出是为了能够为接下来的数据处理准备数据.在PowerShell中我们也可以通过各种Ge

(18)Powershell中的字符串拆分运算符

Powershell中提供了对字符串的拆分操作运算符.-split 运算符将一个字符串拆分成多个字符串. 拆分运算符 拆分运算符用于将一个或多个字符串拆分为多个子字符串.可更改拆分操作的以下元素: (1)定界符.默认为空白,但是可指定字符.字符串.模式或用于设置定界符的脚本块. (2)子字符串的最大数目.默认设置为返回所有子字符串.如果指定的数字小于子字符串数,则其余子字符串将合并到最后一个子字符串中. (3)用于指定定界符匹配条件的选项,如 SimpleMatch 和 Multiline. 拆

(21)Powershell中的通配符

使用通配符进行文件的模糊查找 Powershell 中的通配符可以实现模糊查找, 也就是说可以对一组项(而不是单个项)进行查找.例如,如果想查找 D:\MyPowerShell 目录中所有扩展名为 .ps1 的文件,可以执行以下命令: PS C:\> Get-ChildItem D:\MyPowerShell\*.ps1     目录: D:\MyPowerShell Mode                LastWriteTime     Length Name ----          

Linux中的task,process, thread 简介

本文的主要目的是介绍在Linux内核中,task,process, thread这3个名字之间的区别和联系.并且和WINDOWS中的相应观念进行比较.如果你已经很清楚了,那么就不用往下看了. LINUX版本:2.6.18ARCH: X86 首先要明确的是,按照LKD 2里面的说法,LINUX和其他OS 比如WINDOWS, SOLARIS之间一个很大的不同是没有严格定义的线程(thread).那么你也许会问,如果LINUX中没有线程,那么如何来表示类似WINDOWS 线程的那种执行观念呢?答案是

(实用)将wordpad添加到Windows PowerShell中

PowerShell能够直接打开notepad,但是无法调用wordpad,因为后者的可执行文件并不在系统默认的环境变量$env:Path中,只要将wordpad所在的路径添加到$env:Path,就可以从CMD或PowerShell中直接启动wordpad. 在PowerSehll下输入: $env:Path=$env:Path+”%ProgramFiles%\Windows NT\Accessories 或者: 右键“我的电脑”--“属性”--“高级系统设置”--上方“高级” Panel--

PowerShell中运行Bcdedit命令出错

见下图,当我尝试在PowerShell执行bcdedit删除其中一个启动项时,出现错误:而在CMD中运行时则正常. 执行的命令是: bcdedit /delete {f33a2785-b94a-11e3-a6eb-00e0661386c5} /cleanup 出错的原因: (1)PowerShell中将{}中的内容当作计算式对待: (2)CMD中将{-}整体看作字符: 事实上{f33a2785-b94a-11e3-a6eb-00e0661386c5}就是字符: 由此衍生出: (1)PowerSh

在Powershell中禁止执行脚本

在Powershell中执行脚本时,有如下报错: 无法加载文件 F:\script\1.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing". 所在位置 行:1 字符: 8 + .\1.ps1 <<<< + CategoryInfo          : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeExc