[英]Why does appcmd.exe behave differently when executed inside a batch file?
我有以下appcmd
为IIS7的ISAPI和CGI限制添加一个例外。 我添加的例外情况如下:
c:\\perl\\bin\\perl.exe "%s" %s
这是命令行:
appcmd set config -section:isapiCgiRestriction "-+[path='c:\perl\bin\perl.exe \"%s\" %s', allowed='true', description='Perl CGI']"
如果从命令行执行此操作,它会正确执行此操作,但是如果我在.cmd
批处理文件中执行此操作,则路径会受到损坏并最终看起来像:
c:\\perl\\bin\\perl.exe "s
似乎出现了麻烦,因为我必须转义第一个%s
perl.exe参数周围的引号。 但是为什么在批处理文件中这应该有不同的行为是一个难题。
任何人都可以解释为什么会这样吗?
问题是命令处理器读取你的"%s" %s
并找到两个mathing %
符号,这样就产生了一个有效的批量变量(即%" %
)。并且在将它扩展为空之后,只剩下你"s
。
您可以通过加倍来转义批处理文件中的单个%
-sign,如下所示:
c:\perl\bin\perl.exe "%%s" %%s
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.