為什麼 appcmd.exe 在批次檔中執行時表現不同?

為什麼 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

問題似乎出現了,因為我必須轉義第一個 perl.exe 參數周圍的引號%s。但為什麼這在批次檔中表現不同卻有點令人困惑。

誰能解釋為什麼會發生這種情況?

答案1

Windows 批次變數應以 為前綴%,使這些變數%%s

相關內容