我有一个应用程序,我正试图在windows7和windows xp瘦客户机上运行,但我似乎无法得到正确的runas.exe命令行。我知道我需要在那里使用反斜杠转义字符,这样runas才能正确地解释空格。这在发送runas的单个参数时有效,该参数已用反斜杠转义。这个场景是我找到的所有解决方案,它是有效的,但是,我需要发送多个参数,这些参数都使用反斜杠进行转义,因为论证中的空格是由于文件路径等原因造成的。下面是一些示例:
这些命令有效,并且如预期的那样,将提示输入管理员密码:
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"\"
一种解决方案是一次一个接一个地运行每个参数,但我认为这并不是一种解决方案,而是一种变通方法。我把反斜杠和各种参数混在一起,是不是漏掉了什么?我是不是漏掉了更多的引号?
谢谢
发布于 2012-11-14 06:34:30
规范的解决方案:将命令写入批处理脚本,并通过runas运行该脚本。
发布于 2015-04-27 02:31:47
在后面的引号中,看起来你没有正确地转义它们。反斜杠用于使解释器避免查看下一个字符。对于尾随的引号,您将反斜杠放在引号后面,这是不正确的。
帮助中的示例
"notepad \"my file.txt\""
请注意,反斜杠在引号之前。你甚至可以在堆栈交换中输入答案时使用他们的标记来尝试它,因为你必须输入一个双反斜杠才能显示一个反斜杠
原始代码
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\""
参考文献
https://stackoverflow.com/questions/13364781
复制相似问题