我想运行批处理脚本,它需要一个参数(路径)逃生批输入内部“双引号”参数
runas /user:abc "icacls %1 /grant Everyone:(F) /T"
以下,但参数%1
已经包含了"
(因为它是一个路径,通过上下文菜单的Send To传递 - 我没有太多的控制权)。 所以当命令在批处理脚本运行它运行这样的:
runas /user:abc "icacls "c:\folder" /grant Everyone:(F) /T"
所以,很显然,我需要逃避%1
创建的"
秒。如何通过%1
执行字符串处理以避免引号?
我已经编辑了更清晰的问题 – laggingreflex 2012-08-09 23:33:54
如果%1是一个包含空格的路径,该怎么办? – 2014-05-14 14:59:18
你什么时候在''''上面使用'''''我发现真正的批处理文件只能用'''''转义,而'\''版本只适用于非批处理程序('runas'用C++编写或者识别\作为转义字符的语言)。所以,当传递变量到非批处理程序时,我们只使用'\“',当传递给其他批处理脚本(或批处理函数(例如'CALL:function”parameterWith“”EscapedQuote“'))时,我们只使用'\”' – 2014-11-19 17:16:08