Pregunta

Tengo un script de perl que se utiliza en la actualización de los registros de mis awstats de mi página web. El script funciona bien si me acaba de pegar en cmd (Windows), pero el momento en que pegarlo en un archivo por lotes, ya que se rompe el formato de los archivos generados (que deben ser precedidas por la fecha / hora). El código es:

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`

Los archivos resultantes generados es mysite. 201008 .asp si me pego en cmd y ejecutar pero en un archivo por lotes con el mismo guión, mi archivo resultante es mysite. MM .asp.

¿Alguna idea de por qué ocurre esto?

¿Fue útil?

Solución

El problema es causado por %YYYY%MM.

"%" es un símbolo especial en archivos por lotes. Es necesario para escapar de ella mediante la duplicación que:. %%YYYY%%MM

Otros consejos

Parece que tiene que escapar de los caracteres '%'.

El intérprete de comandos haciendo la sustitución de variables en %YYYY% la que supongo no está definido en su entorno, por lo que sustituye la cadena vacía para que "variable".

Por desgracia, no hay cotizaciones opacas en el shell de Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top