Eliminar todos los archivos de la carpeta excepto aquellos con cierto prefijo

Eliminar todos los archivos de la carpeta excepto aquellos con cierto prefijo

Tengo una carpeta que una aplicación está llenando con archivos generados automáticamente. Allí se crean y almacenan extensiones csv y png. Necesitamos eliminar todos los archivos de la carpeta excepto ciertos archivos png donde el nombre del archivo comienza con "abc-". El sistema es un servidor Windows 2012 r2 y el objetivo es realizar esto mediante un archivo por lotes utilizando el programador de tareas todas las noches.

Intenté usar un par de scripts diferentes preescritos, pero no excluiría estos archivos png con prefijo, solo los eliminaría todos. ¿Cómo haría esto?

Respuesta1

¿Puedes probar powershell? Algo como:

$path = "C:\site\temp"
gci -Path $path | ? {!($_.Name -ilike "abc-*.png")} | % { Remove-Item -Path $_.FullName }

Respuesta2

Con Batch podrías hacerlo de esta manera:

@Echo OFF 

For %%# In ("*.*") DO (
    If /I "%%~x#" EQU ".png" (
        (Echo "%%~n#"| Findstr "^abc-")1>nul 2>&1 || (
            Del /Q "%%~#"
        )
    )
)


Pause&Exit

Repito todos los archivos (que tienen una extensión), luego, si el archivo tiene la extensión ".png", evalúo si el nombre del archivo comienza con "abc-" para excluirlo.

Haga una copia de seguridad de su carpeta antes de realizar la prueba.

Respuesta3

Además, haga una copia de seguridad del contenido de la carpeta en la que está trabajando antes de realizar la prueba.

Paso uno: cree un subdirectorio debajo de la carpeta en cuestión.
Paso dos: mueva los archivos para guardarlos en ese subdirectorio.
Paso tres: elimine todo lo que quede en la carpeta.
Paso cuatro: mueva los archivos del subdirectorio nuevamente a la carpeta.
Paso cinco: elimine el subdirectorio.
Paso seis: mira lo que tienes.

A continuación sigue un guión sencillo.

REM C:\SCRIPTS\MOVERPNG.CMD
C:
ECHO OFF
CLS
CD \SITE\TEMP 
MD BAR  
MOVE /y ABC-*.PNG \SITE\TEMP\BAR  
DEL /y *.PNG  
DEL /y *.CSV  
CD BAR  
MOVE *.PNG C:\SITE\TEMP 
CD ..  
RD /q BAR
ECHO MOVERPNG has completed.
DIR *.* /P /O:N 

información relacionada