![为什么 appcmd.exe 在批处理文件中执行时行为有所不同?](https://linux22.com/image/524170/%E4%B8%BA%E4%BB%80%E4%B9%88%20appcmd.exe%20%E5%9C%A8%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E4%B8%AD%E6%89%A7%E8%A1%8C%E6%97%B6%E8%A1%8C%E4%B8%BA%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
我有以下内容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
问题似乎是因为我必须转义第一个 perl.exe 参数周围的引号%s
。但为什么这在批处理文件中会有所不同,这有点令人费解。
谁能解释为什么会发生这种情况?
答案1
Windows 批处理变量应以 为前缀%
,使得这些%%s