正在尝试使用嵌套引号和can';从PowerShell运行sc create;我不能让它工作
我试图以编程方式创建一个服务,其中binpath包含包含空格的参数的嵌套引号 通过命令提示符运行它工作正常,但在powershell中使用调用表达式失败。我尝试过在这里使用字符串和脚本块,但仍然无法使其工作正在尝试使用嵌套引号和can';从PowerShell运行sc create;我不能让它工作,powershell,Powershell,我试图以编程方式创建一个服务,其中binpath包含包含空格的参数的嵌套引号 通过命令提示符运行它工作正常,但在powershell中使用调用表达式失败。我尝试过在这里使用字符串和脚本块,但仍然无法使其工作 $serviceName = "my service" $svcBinaryPath = '\"' + $pathToExe + '\" \"' + $parameterWithSpaces + '\"' $cmd = "sc.exe create $('"' + $serviceName
$serviceName = "my service"
$svcBinaryPath = '\"' + $pathToExe + '\" \"' + $parameterWithSpaces + '\"'
$cmd = "sc.exe create $('"' + $serviceName + '"') binpath= $('"' + $svcBinaryPath + '"')"
Invoke-Command $cmd
打印出
$cmd
并运行命令提示符中显示的内容很好。您不能只将字符串传递给调用命令
,您也不需要它,只需按以下方式运行它:
$serviceName = "my service"
$scvBinaryPath = '\"' + $pathToExe + '\" \"' + $parameterWithSpaces + '\"'
sc.exe create $serviceName binpath= $svbBinaryPath
您不能只将字符串传递给
Invoke命令
,也不需要它,只需按以下方式运行它:
$serviceName = "my service"
$scvBinaryPath = '\"' + $pathToExe + '\" \"' + $parameterWithSpaces + '\"'
sc.exe create $serviceName binpath= $svbBinaryPath
请注意,有一个新的service cmdlet用于创建服务
PS C:\users\j> get-command -noun service
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Resume-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Suspend-Service 3.1.0.0 Microsoft.PowerShell.Management
请注意,有一个新的service cmdlet用于创建服务
PS C:\users\j> get-command -noun service
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Restart-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Resume-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Service 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Suspend-Service 3.1.0.0 Microsoft.PowerShell.Management
这里根本不需要调用命令
sc.exe创建“$serviceName”binpath=“$svcBinaryPath”
应该可以。您根本不需要在此处调用命令sc.exe创建“$serviceName”binpath=“$svcBinaryPath”
应该可以。