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

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

我有以下内容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

相关内容