Estoy trabajando en un script por lotes que me permitirá eliminar archivos más antiguos que un período establecido usando forfiles. Por ahora, mi objetivo es imprimir los archivos que se eliminarán.Forfiles Batch Script (Escaping @ character)
La invocación forfiles que estoy usando funciona sin problemas desde un shell cmd.exe, pero tan pronto como lo incrusto en un script por lotes, se convierte en barfs. Sospecho que esto se debe a que el carácter @ no se ha escapado correctamente, pero no estoy seguro.
El comando que estoy corriendo es:
forfiles /S /P "r:\" /m *.bak /d -10 /c "cmd /c echo @PATH"
Y el resultado es el siguiente error:
ERROR: Invalid argument/option - '@PATH'
Type "FORFILES /?" for usage.
He buscado en Google por todo el lugar y trató algunos esquemas diferentes para escapar el componente @PATH. Todo desde @@ RUTA, a \ "@ PATH \" sin resultados.
¡Cualquier ayuda sería apreciada!
EDIT: También debe tener en cuenta que estoy basando gran parte de mi conocimiento de forfiles de here.
Extracción de las cotizaciones trabajado! ¡Muchas gracias! Me parece increíblemente extraño que poner comillas alrededor de una ruta de archivo (un procedimiento estándar) rompa un argumento separado al comando de una manera tan obvia. – Paradox
Sí, es bastante extraño, pero he tenido el mismo problema en este momento. Buena solución. :) – jsight
Gracias, pero esto es estúpido. ¿Por qué, en 2012, tuve que convertir mi ruta a un formato DOS 'f: \ MySQLB ~ 1 \'? LOL. ¡Pero al menos funciona ahora! – cbmeeks