我有一个应用程序,我试图在 Windows 7 和 Windows XP 瘦客户端上运行提升,但我似乎无法正确获取 runas.exe 命令行。我知道我需要其中的反斜杠转义字符,以便 runas 正确解释空格。当将 run 作为已用反斜杠转义的单个参数发送时,此方法有效。这种情况是我找到的所有解决方案,并且它有效,但是,我需要发送多个参数,这些参数都用反斜杠转义,因为文件路径等导致参数中存在空格。以下是一些示例:
这些工作正如预期的那样会提示输入管理员密码:
runas.exe /user:Administrator "C:\update_andon.exe autosetup /kiosktype:\"Andon Kiosk"\
runas.exe /user:Administrator "C:\update_andon.exe autosetup /directory:\"C:\Program Files\CIMS_Andon\Kiosk"\
当我开始添加所需的其余参数(例如下面的行)时,我收到 runas 帮助文本,表明存在问题:
runas.exe /user:administrator "C:\update_andon.exe autosetup /kiosktype:\"Andon Kiosk"\ /exename:\"eAndonKiosk.exe"\ /directory:\"C:\Program Files\CIMS_Andon\Kiosk"\ /repository:\"\\domain\sat\shared\repository\andon kiosk"\"
一种解决方案是一次一个接一个地运行每个参数,但我不认为这是一种解决方案,而是一种解决方法。我将反斜杠与各种参数混合在一起的方式是否遗漏了一些东西?我是否在某处遗漏了更多引用?
Thanks
看起来您的尾随引号中您没有正确转义它们。反斜杠用于避免解释器查看下一个字符。对于尾随引号,您在引号后面加上反斜杠,这是不正确的。
帮助中的示例
"notepad \"my file.txt\""
请注意,反斜杠位于引号之前。您甚至可以在使用其 Markdown 在堆栈交换上输入答案时尝试一下,因为您必须输入双 \ 才能显示单个反斜杠
原始代码
runas.exe /user:administrator "C:\update_andon.exe autosetup /kiosktype:\"Andon Kiosk"\ /exename:\"eAndonKiosk.exe"\ /directory:\"C:\Program Files\CIMS_Andon\Kiosk"\ /repository:\"\\domain\sat\shared\repository\andon kiosk"\"
修正后的代码
runas.exe /user:administrator "C:\update_andon.exe autosetup /kiosktype:\"Andon Kiosk\" /exename:\"eAndonKiosk.exe\" /directory:\"C:\Program Files\CIMS_Andon\Kiosk\" /repository:\"\\domain\sat\shared\repository\andon kiosk\""
参考
- 引号、转义字符、分隔符 - Windows CMD - SS64.com http://ss64.com/nt/syntax-esc.html
- 批处理文件 - 转义字符 http://www.robvanderwoude.com/escapechars.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)