如何启动,一个程序使用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用参数启动进程?
答案 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}}"