0

Web サイトの 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 になります。MM .asp。

なぜこれが起こっているのですか?

4

3 に答える 3

4

問題の原因は%YYYY%MM.

「%」は、バッチ ファイルの特殊な記号です。2 倍にしてエスケープする必要があります: %%YYYY%%MM.

于 2010-08-27T15:49:11.327 に答える
0

%YYYY%私が推測している変数置換を行うコマンドシェルは、あなたの環境では定義されていないため、その「変数」を空の文字列に置き換えます。

残念ながら、Windows シェルには不透明な引用符はありません。

于 2010-08-27T15:50:26.667 に答える
0

「%」文字をエスケープする必要があるようです。

于 2010-08-27T15:47:36.360 に答える