通过cmd命令启动powershell

时间:2016-12-16 12:38:45

标签: powershell command-line cmd

如何启动,一个程序使用powershell通过cmd使用powershell :)

powershell -command "& {get-service -computername server1,server2 -displayname 'instance *'|where {$_.status -eq 'Running'}|foreach-object {start-process -filepath 'C:\monitor.exe' -argumentlist "-adminhost $($_.machinename) -servername $($_.name)"} } "

现在更换" "随着推车上的' '程序我得到变量的文本表示

-argumentlist "-adminhost $($_.machinename) -servername $($_.name)"

是否可以编写这样的命令powershell用参数启动进程?

1 个答案:

答案 0 :(得分:2)

您最好的选择是将PowerShell代码写入文件并运行:

powershell.exe -File "C:\path\to\your.ps1"

如果必须使用嵌套双引号执行命令字符串,则需要使用反斜杠转义嵌套双引号:

powershell.exe -Command "&{Write-Output \"foo bar\"}"

在你的情况下:

powershell.exe -Command "&{Get-Service -ComputerName server1,server2 -DisplayName 'instance *'|where {$_.Status -eq 'Running'}|ForEach-Object {Start-Process -FilePath 'C:\monitor.exe' -ArgumentList \"-adminhost $($_.MachineName) -servername $($_.Name)\"}}"

或者,由于各个参数似乎不包含空格,您可以将参数列表作为实际列表/数组传递:

powershell.exe -Command "&{Get-Service -ComputerName server1,server2 -DisplayName 'instance *'|where {$_.Status -eq 'Running'}|ForEach-Object {Start-Process -FilePath 'C:\monitor.exe' -ArgumentList '-adminhost', $_.MachineName, '-servername', $_.Name}}"