As variáveis de lote do Windows devem ser prefixadas com um %
, fazendo com que esses %%s
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?