
Ich appcmd
möchte eine Ausnahme zu den ISAPI- und CGI-Einschränkungen von IIS7 hinzufügen. Die Ausnahme, die ich hinzufüge, sollte folgendermaßen aussehen:
c:\perl\bin\perl.exe "%s" %s
Hier ist die Befehlszeile:
appcmd set config -section:isapiCgiRestriction "-+[path='c:\perl\bin\perl.exe \"%s\" %s', allowed='true', description='Perl CGI']"
Wenn ich dies von der Befehlszeile aus ausführe, geschieht dies korrekt. Wenn ich dies jedoch in einer .cmd
Batchdatei ausführe, wird der Pfad verstümmelt und sieht am Ende folgendermaßen aus:
c:\perl\bin\perl.exe "s
Das Problem scheint aufzutreten, weil ich die Anführungszeichen um den ersten %s
perl.exe-Parameter maskieren muss. Aber warum sich das in einer Batchdatei anders verhalten sollte, ist ein kleines Rätsel.
Kann jemand erklären, warum das passiert?
Antwort1
Windows-Batchvariablen sollten mit einem vorangestellt werden %
, wodurch diese%%s