我在尝试执行一个命令时收到此错误PowerShell
:
我在尝试着exec
这个命令:
powershell.exe Start-Process -FilePath "C:\Windows\System32\attrib +h +s "%CD%"" -Verb runAs
有人可以帮我弄清楚为什么会发生这种情况以及如何解决它吗?
有人可以帮我弄清楚为什么会发生这种情况吗?
The -FilePath
的参数Start-Process
cmdlet 需要可执行文件的名称或路径file其本身,不是一个整个命令行.
The 论点传递给指定的可执行文件-FilePath
必须通过分别地, as an array,通过-ArgumentList
(-Args
) 范围。
当从以下位置拨打电话时cmd.exe
(批处理文件),从概念上讲,传递整个命令行进行评估会更清晰电源外壳在一个单一的,"
- 附上论点:
powershell.exe -Command "Start-Process -Verb RunAs -FilePath attrib.exe -Args +h, +s, '\"%CD%\"'"
注意需要转义%CD%
value doubly,将其包含在'
首先是为了 PowerShell,然后是\"
里面: 外面'
确保 PowerShell 本身将该值识别为单个参数,并且嵌入的\"
引用确保最终的目标程序,attrib.exe
,也将该值视为单个参数。
这种双重转义的需要是不幸的,并且不应该是必要的——它在这个 GitHub 问题 https://github.com/PowerShell/PowerShell/issues/5576.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)