gpt4 book ai didi

windows - 在混合批处理/powershell 脚本运行中转义双引号问题

转载 作者:可可西里 更新时间:2023-11-01 12:07:24 25 4
gpt4 key购买 nike

这是我正在尝试做的事情:

@ECHO OFF

CALL powershell -ExecutionPolicy RemoteSigned -Command "$sh = new-object -com 'Shell.Application'; $sh.ShellExecute('powershell', '-NoExit -Command "$path = """HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}""";echo $path"', '', 'runas')"

PAUSE

基本上,我想要一个可以双击的批处理文件,它将运行一个 powershell 脚本,该脚本调用另一个 powershell 脚本但要求管理员权限并以管理员身份运行该命令。

不过我遇到了问题,我认为双引号...我已经尝试了很多东西但似乎无法修复它,这是 powershell 错误消息:

Bad numeric constant: 4D.
At line:1 char:57
+ $path = HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D <<<< 36E972-E325-11C
E-BFC1-08002BE10318};echo $path
+ CategoryInfo : ParserError: (4D:String) [], ParentContainsError
RecordException
+ FullyQualifiedErrorId : BadNumericConstant

PS C:\Windows\system32>

最佳答案

我会使用内置命令 Start-Process 而不是创建 shell 对象,例如:

CALL powershell -ExecutionPolicy RemoteSigned -NoProfile -Command "& {Start-Process PowerShell -Verb runas -Arg '-NoExit -Command & {$path=''foo'';$path}'}"

对于任何重要的事情,引用都会很烦人。能否将最终脚本放入文件中,并使用 PowerShell.exe 的 -File 参数执行脚本文件?

关于windows - 在混合批处理/powershell 脚本运行中转义双引号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4240141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com