
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 パラメータを囲む引用符をエスケープする必要があるために発生するようです。しかし、バッチ ファイルでこれが異なる動作をするのはなぜか、少し謎です。
なぜこのようなことが起こるのか誰か説明できますか?
答え1
Windowsのバッチ変数には%
、という接頭辞を付ける必要があります。%%s