PowerShell Start-Process
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍PowerShell中的Start-Process
cmdlet。此cmdlet在本地计算机上启动一个或多个进程。它提供了对进程启动方式的广泛控制。
进程基础
Start-Process
cmdlet使用各种选项启动新进程。它可以运行可执行文件、脚本或具有关联应用程序的文档。与直接调用可执行文件不同,它提供了更强的执行控制。参数允许设置窗口样式、凭据和工作目录。
Start-Process 的基本用法
使用Start-Process
的最简单方法是仅提供文件名。这将启动文件类型的默认应用程序。对于可执行文件,它会直接启动程序。进程独立于PowerShell运行。
Start-Process notepad.exe
此命令启动记事本。进程在一个单独的窗口中运行。PowerShell会立即继续,而不会等待记事本关闭。
使用参数启动进程
许多应用程序接受命令行参数。-ArgumentList参数将这些参数传递给新进程。参数应作为数组提供。这对于在启动时配置应用程序行为很有用。
Start-Process notepad.exe -ArgumentList "C:\temp\notes.txt"
此命令以特定文件打开记事本。如果文件不存在,记事本会提供创建它的选项。文件路径必须正确引用。
以不同用户身份运行进程
可以使用-Credential参数以不同的凭据启动进程。这需要一个包含用户名和密码的PSCredential对象。用于以提升的权限运行进程。用户必须拥有适当的权限。
$cred = Get-Credential Start-Process cmd.exe -Credential $cred
这将提示输入凭据,然后以该用户身份启动命令提示符。Get-Credential cmdlet会显示一个安全的凭据对话框。密码输入是安全的。
控制窗口样式
-WindowStyle 参数控制进程窗口的外观。选项包括Normal、Minimized、Maximized和Hidden。对于后台进程或脚本很有用。默认是Normal窗口状态。
Start-Process notepad.exe -WindowStyle Minimized
此命令将记事本最小化到任务栏。窗口最初不可见,但会出现在任务栏中。对于后台应用程序很有用。
等待进程完成
-Wait 参数使PowerShell等到进程完成。在依赖进程完成的脚本中很有用。没有它,PowerShell会立即继续。与-PassThru结合使用以获取进程信息。
Start-Process notepad.exe -Wait Write-Host "Notepad has closed"
PowerShell会等到记事本关闭后再继续。消息仅在记事本退出后显示。对于顺序操作很有用。
将输出重定向到文件
可以使用-RedirectStandardOutput和-RedirectStandardError将进程输出重定向到文件。用于将命令输出捕获到日志中。与-NoNewWindow结合使用以处理控制台应用程序。
Start-Process cmd.exe -ArgumentList "/c dir" ` -NoNewWindow -RedirectStandardOutput out.txt
运行dir命令并将输出保存到out.txt。 /c 参数告诉cmd在执行后终止。-NoNewWindow将输出保留在PowerShell中。
使用工作目录启动进程
-WorkingDirectory 参数设置进程的启动目录。影响进程默认查找文件的位置。与PowerShell的当前目录不同。当路径是相对路径时很有用。
Start-Process cmd.exe -WorkingDirectory "C:\temp"
以C:\temp作为当前目录启动命令提示符。任何文件操作默认都会使用此位置。不影响PowerShell的位置。
在默认浏览器中启动Web URL
Start-Process
可以在默认Web浏览器中打开URL。只需提供URL而不是可执行文件路径。系统会处理协议关联。也适用于mailto:等其他协议。
Start-Process "https://www.zetcode.com"
在默认浏览器中打开ZetCode网站。无需指定浏览器可执行文件。系统会使用https协议的注册URL处理程序。
来源
在本文中,我们介绍了PowerShell中的Start-Process cmdlet。
作者
列出 所有 PowerShell 教程。