2011-09-21 55 views
12

Estoy tratando de usar archivos for para eliminar archivos que tienen más de 7 días. Los archivos están en una ruta UNC. A continuación está el script que estoy usando.forfiles con ruta UNC

Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 

pero me da un error mencionar que las rutas UNC (\ máquina de share \) no son compatibles.

Parece haber soluciones disponibles, pero no se puede obtener una respuesta clara de Google.

Respuesta

11

El error que recibo al intentar reproducir el problema dice que el problema no está en que FORFILES no soporte UNC Path, sino que CMD no puede comenzar con una ruta UNC como directorio predeterminado. En caso de que este también sea su problema, existen tres enfoques para resolverlo.

  1. puede asignar la ruta UNC a una letra de disco, a través de NET USE

    NET USE V: \\devexpress\C$ 
    Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 
    
  2. Es posible pasar por alto CMD y directamente utilizar algunos ERASEFILE utilidad ejecutable directamente en la opción -C del FORFILES

  3. Puede omitir FORFILES y usar el comando FOR con alguna lógica de comprobación de fecha. Véase mi respuesta a esta pregunta desbordamiento de pila How can I check the time stamp creation of a file in a Windows batch script?

54

solución mejorada para la primera respuesta de la PA es:

PushD "\\devexpress\C$\FULL\" &&(
    forfiles -s -m *.* -d -7 -c "cmd /c del /q @path" 
    ) & PopD 

El comando pushd los mapas de la ruta UNC letra de unidad de forma automática, por lo que este es el enfoque portátil . Encontrado en http://www.petri.co.il/forums/showthread.php?t=24241.

+0

¡Esto realmente funciona! Gracias @jirkamat –

+0

Sé que se supone que no debes decir "gracias", ¡pero gracias! xD – Michael

Cuestiones relacionadas