首页 > 解决方案 > 如何使用 Powershell 启动进程 [System.Diagnostics.Process]::Start with more the one parameter

问题描述

当我在 PS 中启动一个进程时:

这工作正常。

[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")

但如果$param2有空格,它将在第一个单词处被截断。Myprog.exe 将在 SQL 表中插入作为参数传递的 2 个字符串。

所以这很好用:

$param1 = "param1string"
$param2 = "param2string"
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")

但这里不是。我将只有第二个参数的第一个单词放在桌子上。

$param1 = "param1string"
$param2 = "param2 string string"
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")

我怎样才能解决这个问题?

标签: powershellprocessprocess.start

解决方案


双引号的正确方法是:

$param1 = "param1string" 
$param2 = "`"param2 string string`""
[System.Diagnostics.Process]::Start("myprog.exe", "$param1 $param2 /run /SilentMode")

这个对我有用!


推荐阅读