【问题标题】:Runas CMD is not working because of quoting由于引用,Runas CMD 无法正常工作
【发布时间】:2019-01-03 13:35:34
【问题描述】:

我在批处理文件中使用这一行:

Runas /user:domain\user "cmd /C echo Test > C:\Program Files\Install2AgentService\Install2AgentWinService.exe.config"

问题在于,这仅在文件路径没有空格时才有效。而且我不能像往常一样将路径放在引号中,因为整个 CMD 命令必须放在引号中。

Runas /user:domain\user "cmd /C echo Test > "C:\Program Files\Install2AgentService\Install2AgentWinService.exe.config""

即使转义双引号也不起作用。

Runas /user:domain\user "cmd /C echo Test > ""C:\Program Files\Install2AgentService\Install2AgentWinService.exe.config"""

有人知道如何处理这个问题吗?谢谢!

【问题讨论】:

  • 如果您总是希望它出现在 ProgramFiles 中,也许这种解决方法会为您解决问题。 Runas /user:domain\user "cmd /C echo Test > %ProgramFiles%\Install2AgentService\Install2AgentWinService.exe.config"。此外,你并没有向我们展示你是如何转义这个字符串的。
  • 啊对不起,没有比程序文件更多的空间...我添加了其他两种我已经尝试过的方法
  • 使用简短的 8.3 名称去除路径中的空格:Runas /user:domain\user "cmd /C echo Test > C:\PROGRA~1\Install2AgentService\Install2AgentWinService.exe.config"

标签: batch-file cmd runas


【解决方案1】:

使用\ Reverse Solidus(反斜杠)转义内部双引号,如下所示:

Runas /user:domain\user "cmd /C echo Test>\"C:\Program Files\Install2AgentService\Install2AgentWinService.exe.config\""

资源(等效):

示例用例

d:\bat> runas /noprofile /user:user "cmd /V:ON /C whoami&echo \"!CD!\"&echo !CD! Test runas>>\"%CD%\test runas.txt\"&pause"
Enter the password for user:
Attempting to start cmd /V:ON /C whoami&echo "!CD!"&echo !CD! Test runas>>"d:\bat\test runas.txt"&pause as user "MY-PC\user" ...

d:\bat> type "test runas.txt"
C:\WINDOWS\system32 Test runas
C:\WINDOWS\system32 Test runas

【讨论】:

  • 我以为我之前尝试过,但它正在工作。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多