バッチファイルでPerlスクリプトを実行します
-
01-10-2019 - |
質問
私のウェブサイトのawstatsログを更新する際に使用されるperlスクリプトがあります。 CMD(Windows)に貼り付けるだけでスクリプトは正常に動作しますが、バッチファイルに貼り付けた瞬間に、生成されたファイルの形式を台無しにします(現在の日付/時間で準備する必要があります)。コードは次のとおりです。
perl C:\PROGRA~2\AWStats\tools\awstats_buildstaticpages.pl -config=mywebsite -update -awstatsprog=C:\PROGRA~2\AWStats\wwwroot\cgi-bin\awstats.pl -dir=C:\myfolder\stats\reports -builddate=%YYYY%MM -buildpdf=C:\PROGRA~2\HTMLDOC\ghtmldoc.exe -staticlinksext=asp`
生成された結果のファイルはMySiteです。201008.ASP CMDで貼り付けて実行すると同じスクリプトを持つバッチファイルで、結果のファイルはMySiteです。んん.asp。
なぜこれが起こっているのかという考えはありますか?
解決
問題はによって引き起こされます %YYYY%MM
.
「%」は、バッチファイルの特別なシンボルです。あなたはそれを2倍にすることによってそれを逃れる必要があります: %%YYYY%%MM
.
他のヒント
「%」文字を逃れなければならないようです。
可変置換を行うコマンドシェル %YYYY%
私が推測しているのは、あなたの環境では定義されていないので、その「変数」の空の文字列を置き換えます。
残念ながら、Windowsシェルには不透明な引用はありません。
所属していません StackOverflow