Назад | Перейти на главную страницу

Почему appcmd.exe работает по-другому при выполнении внутри командного файла?

У меня есть следующие appcmd чтобы добавить исключение для ограничений IIS7 ISAPI и CGI. Добавляемое мной исключение должно выглядеть так:

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. Но почему это должно вести себя по-другому в пакетном файле, остается загадкой.

Кто-нибудь может объяснить, почему это происходит?

Пакетные переменные Windows должны иметь префикс %, делая эти %%s