当你在PowerShell中,启动带参数启动可执行应用程序时,可能会碰到参数解析的错误。最好的方式是使用命令 Start-Process,该命令有两个优点:
- 程序的路径和程序参数分开,可以使用-FilePath 和 -ArgumentList单独传递。这样就可以在闭合的引号中安全地传递参数了。
- 支持在新窗口和当前窗口启动程序:-NoNewWindow
- 支持在当前进程和新进程启动程序:-Wait
PS E:> Start-Process -FilePath Ping.exe -ArgumentList "www.pstips.net -n 3" -NoNewWindow PS E:> 正在 Ping www.pstips.net [108.171.203.52] 具有 32 字节的数据: 请求超时。 请求超时。 请求超时。 108.171.203.52 的 Ping 统计信息: 数据包: 已发送 = 3,已接收 = 0,丢失 = 3 (100% 丢失), PS E:> Start-Process -FilePath Ping.exe -ArgumentList "www.pstips.net -n 3" -NoNewWindow PS E:> 正在 Ping www.pstips.net [108.171.203.52] 具有 32 字节的数据: 请求超时。 请求超时。 请求超时。 108.171.203.52 的 Ping 统计信息: 数据包: 已发送 = 3,已接收 = 0,丢失 = 3 (100% 丢失),
Start-Process -FilePath notepad -ArgumentList "$env:windirsystem32driversetchosts"
原文链接:http://www.pstips.net/powershell-launching-applications.html