FORFILES en lotes para eliminar archivos con sufijos específicos de más de una semana

FORFILES en lotes para eliminar archivos con sufijos específicos de más de una semana

Quiero usar FORFILES en lotes para eliminar SOLO localhost_access_logarchivos txt (comenzando con) (no subdirectorios) con más de una semana. pero estoy consiguiendo%%t was unexpected at this time.

for %%t in (.txt) do forfiles /p "C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs\" /s /m *%%t /d -10 /c "cmd /c del @PATH"

Respuesta1

for /f useback^tokens^=* %i in (`2^>nul forfiles /p "C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs\" /s /m "*.txt" /d -10 /c "cmd /c echo=@Path"`)do @echo\%~ni|findstr/bil localhost_access_log >nul && echo\ del/q /f "%~fi"

1.No es una máscara válida en:/m *%%t

El%%tes una ruta completa, es un elemento resultante y 100% calificado del bucle anterior, pero no una máscara para uso de forfiles, incluso si se agrega a*, no será tratada como una máscara.

2.puedes reemplazar/m *%%ta:

/m "*.txt"

3.Reemplazar Foral For /Fbucle:

for /f useback^tokens^=* %i in (`2^>nul forfiles /p "C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs\" /s /m "*.txt" /d -10 /c "cmd /c echo=@Path"`)do ...

4.Utilice unecho\FileNamepara comprobar si coincide con el nombre del archivo que desea eliminar, utilizando una redirección |conFindstry el operador&&( return 0) ejecutardelsi el nombre coincide:

@echo\%~ni|findstr/bil localhost_access_log >nul && echo\ del /q /f "%~i"

5.Pruebe y confirme que, si está satisfecho, elimine echoel archivo para eliminarlo de manera efectiva.

@echo\%~ni|findstr/bil localhost_access_log >nul && del /q /f "%~i"

Obs.:- Usando un Forbucle puedes expandir tu variable:

    %~i   - expands %i removing any surrounding quotes (")
    %~fi  - expands %i to a fully qualified path file/dir name only
    %~ni  - expands %i to a file/dir name only
    %~xi  - expands %i to a file/dir extension only
    
    %%~nxi => expands %%~i to a file/dir name and extension
  • Use the FOR variable syntax replacement:
        %~pI        - expands %I to a path only
        %~nI        - expands %I to a file name only
        %~xI        - expands %I to a file extension only
  • The modifiers can be combined to get compound results:
        %~pnI       - expands %I to a path and file name only
        %~pnxI      - expands %I to a path, file name and extension only

Recursos adicionales:

información relacionada