J’ai l’ appcmd
suivant pour append une exception aux ressortingctions ISAPI et CGI d’IIS7. L’exception que j’ajoute devrait ressembler à ceci:
c:\perl\bin\perl.exe "%s" %s
Voici la ligne de commande:
appcmd set config -section:isapiCgiRessortingction "-+[path='c:\perl\bin\perl.exe \"%s\" %s', allowed='true', description='Perl CGI']"
Si vous l’exécutez depuis la ligne de commande, il le fait correctement. Cependant, si je l’exécute dans un fichier de commandes .cmd
, le chemin est déchiré et finit par ressembler à ceci:
c:\perl\bin\perl.exe "s
Le problème semble se poser car je dois échapper aux guillemets autour du premier paramètre %s
perl.exe. Mais pourquoi cela devrait se comporter différemment dans un fichier de commandes est un peu un casse-tête.
Quelqu’un peut-il expliquer pourquoi ceci est en train de se passer?
Le problème est que le processeur de commandes lit votre "%s" %s
et trouve deux signes %
, ce qui fait une variable de lot valide (à savoir %" %
).
Vous pouvez échapper à un seul signe %
dans votre fichier de commandes en le doublant, comme ceci:
c:\perl\bin\perl.exe "%%s" %%s