Por que o appcmd.exe se comporta de maneira diferente quando executado dentro de um arquivo em lotes?

1

Eu tenho o seguinte appcmd para adicionar uma exceção às restrições ISAPI e CGI do IIS7. A exceção que estou adicionando deve se parecer com:

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

Aqui está a linha de comando:

appcmd set config -section:isapiCgiRestriction "-+[path='c:\perl\bin\perl.exe \"%s\" %s', allowed='true', description='Perl CGI']"

Se executá-lo a partir da linha de comando, ele faz isso corretamente, no entanto, se eu executar isso dentro de um arquivo em lote .cmd , o caminho será desconfigurado e ficará parecido com:

c:\perl\bin\perl.exe "s

O problema parece surgir porque eu tenho que escapar as aspas ao redor do primeiro parâmetro %s perl.exe. Mas por que isso deve se comportar de maneira diferente em um arquivo de lote é um pouco de quebra-cabeça.

Alguém pode explicar por que isso está acontecendo?

    
por Kev 08.09.2010 / 12:37

1 resposta

2

As variáveis de lote do Windows devem ser prefixadas com um % , fazendo com que esses %%s

    
por 08.09.2010 / 12:44