Start-Process
是用于创建新进程的powershell commandlet。由于powershell主要是.Net开发的,并提供.Net功能 Start-Process
相当于 System.Diagnostics.Process
方法。
启动进程
最基本的用法 Start-Process
是通过给出进程的名称来启动进程。启动进程继承当前的工作环境变量,如果其在 Path
环境。在本例中,我们将从 notepad.exe
通过指定文件名 names.txt
PS> Start-Process notepad.exe names.txt
运行批处理文件
我们可以指定要在Powershell中运行的脚本文件或批处理文件。我们将使用 -filepath
具有批处理文件的完整路径和名称的选项。在本例中,我们运行批处理文件 backup.cmd
.
PS> Start-Process -filepath C:ackup.cmd
以提升的管理权限运行
在使用启动进程运行和创建新进程时,将获得当前用户权限。这在某些情况下可能不起作用。我们可以使用 -verb runas
. 在本例中,我们将运行 cmd.exe
具有管理员权限。
PS> Start-Process -verb runas cmd.exe
设置工作目录
在使用时 Start-Process
默认情况下,当前工作目录将是当前工作目录。给定进程的设置工作目录可以通过 -workingdirectory
选项。如果我们需要更改可执行文件路径,这很有用。在本例中,我们将更改为 C:Windows
到工作目录。以双引号提供目录将减少此错误的发生。
PS> Start-Process -workingdirectory "C:Windows" cmd.exe
使用打印动词
我们也可以使用 Start-Process
不提供任何可执行文件。我们可以用print动词来打印文本文件。我们将使用 -verb Print
为了这个。在本例中,我们将打印名为 names.txt
PS> Start-Process names.txt -verb Print
设置窗口样式
启动新进程时,它将以默认大小打开新窗口。我们可以在启动时更改此窗口大小。我们可以用 -windowstyle
选项。此选项可以获得以下值
- 最大化
- 最小化
相关文章: 用Htop监控Linux的Cpu、内存性能
在本例中,我们将打开 notepad.exe
在最大化窗口中。
PS> Start-Process notepad.exe -windowstyle Maximized
重定向标准输入
在shell中运行的命令和可执行文件将具有一些标准输入。提供的标准输入数据将被输入到命令或可执行文件中。我们可以用 -RedirectStandardInput
包含要输入可执行文件的数据的文件的选项。在本例中,我们将把数据放入 mydata.txt
进入之内 notepad.exe
.
PS> Start-Process notepad.exe -RedirectStandardInput mydata.txt
重定向标准输入
正如前面的例子所做的,我们可以将标准输出重定向到给定的文件中。我们将使用 -RedirectStandardOuput
使用文件名。在本例中,我们将重定向到名为 notepad.log
.
PS> Start-Process notepad.exe -RedirectStandardOutput notepad.log