我正在用PowerShell编写代码。我想以管理员身份更改配置文件中的端口,但不起作用。
这是我的代码:
tableView(_ tableView: UITableView, viewForHeaderInSection section: Int)
我认为它在-replace(“ httpPort = $ port”)的第二部分上遇到了麻烦。
我想念什么?
答案 0 :(得分:1)
您可以尝试以下操作:
Start-Process -Verb RunAs -Wait -FilePath powershell.exe -ArgumentList '-Command',
"$($ScriptBlock -replace '"', '\"'); bar $port"
顺便说一句:
*您用来匹配端口号的正则表达式表明它是一个不带引号的属性值,尽管在 HTML 中可以接受,但它的格式不正确 XML 。
*不要使用方法语法(bar($port)
来调用函数-PowerShell函数的调用就像shell命令一样,没有括号,并且参数之间用空格隔开,而不是,
:{ {1}}
关于您尝试过的事情:
bar $port
始终将传递给Start-Process
的参数解释为 strings ,尽管脚本块方便地将其字符串化为原义字符串内容,但您需要转义嵌入-ArgumentList
个字符。为"
(原文如此),以使目标PowerShell实例能够使用(在Windows PowerShell中暗示)\"
选项正确识别它们。
由于-Command
仅将所有后续参数以空格分隔为,然后将结果字符串解释为PowerShell源代码,因此通常最好传递一个单个字符串,以确保概念清晰。