繁体   English   中英

为什么appcmd.exe在批处理文件中执行时表现不同?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM