2010-09-08 60 views
3

我有以下appcmd添加到IIS7的ISAPI和CGI限制的异常。我加入的异常应该是这样的:为什么appcmd.exe在批处理文件中执行时行为有所不同?

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参数引号。但是为什么这个应该在批处理文件中有不同的表现是一个难题。

任何人都可以解释为什么发生这种情况?

+0

撕裂SF之间因此对于这一个。 – Kev 2010-09-08 10:31:20

回答

3

问题是命令处理器读取您的"%s" %s并发现两个标记%,因此这会生成一个有效的批处理变量(即%" %)。在将其扩展到无所有后,只有您的"s仍然存在。

您可以通过它加倍,这样逃避在批处理文件中的单个% -sign:

c:\perl\bin\perl.exe "%%s" %%s 
+0

谢谢弗兰克。这让我挠了挠头。 – Kev 2010-09-08 12:10:11

相关问题