Solución:
La solución mejorada a la primera respuesta de la Autoridad Palestina es:
PushD "\devexpressC$FULL" &&(
forfiles -s -m *.* -d -7 -c "cmd /c del /q @path"
) & PopD
El comando PushD asigna la ruta UNC a la letra de la unidad libre automáticamente, por lo que este es un enfoque portátil. Encontrado en http://www.petri.co.il/forums/showthread.php?t=24241.
El error que obtengo al intentar reproducir el problema dice que el problema no es que FORFILES no sea compatible con la ruta UNC, sino que CMD no pueda comenzar con una ruta UNC como directorio predeterminado. En caso de que este también sea tu problema, existen tres enfoques para solucionarlo.
-
puede asignar la ruta UNC a una letra de disco, a través de
NET USE
NET USE V: \devexpressC$ Forfiles -p V:FULL -s -m *.* -d -7 -c "cmd /c del /q @path"
-
Puede pasar por alto
CMD
y use directamente alguna utilidad ejecutable ERASEFILE directamente en la opción -C delFORFILES
-
Puede pasar por alto
FORFILES
y useFOR
comando con alguna lógica de verificación de fecha en su lugar. Vea mi respuesta a esta pregunta de desbordamiento de pila ¿Cómo puedo verificar la creación de marca de tiempo de un archivo en un script por lotes de Windows?