Exclui todos os arquivos na pasta, exceto aqueles com determinado prefixo

4

Eu tenho uma pasta sendo preenchida com arquivos gerados automaticamente por um aplicativo. Existem extensões csv e png sendo criadas e armazenadas lá. Precisamos excluir todos os arquivos da pasta, exceto certos arquivos PNG, onde o nome do arquivo começa com "abc-". O sistema é uma caixa do windows server 2012 r2, e o objetivo é fazer isso por meio de um arquivo em lote usando o agendador de tarefas todas as noites.

Eu tentei usar alguns scripts diferentes pré-escritos, mas não excluiria esses arquivos PNG prefixados, apenas removeria todos. Como eu faria isso?

    
por Joel Stockley 12.10.2015 / 05:10

3 respostas

1

Você pode tentar o powershell? Algo como:

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

Com o Batch, você pode fazer isso da seguinte maneira:

@Echo OFF 

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


Pause&Exit

I itera todos os arquivos (que têm uma extensão), então Se o arquivo tem a extensão ".png", eu avalio se o nome do arquivo começa com "abc-" para excluí-lo.

Por favor, faça um backup da sua pasta antes de testar.

    
por 12.10.2015 / 05:24
0

Além disso, faça o backup do conteúdo da pasta em que você está trabalhando antes de testar.

Primeiro Passo: Crie um subdiretório abaixo da pasta em questão.
Etapa 2: mover os arquivos para salvar nesse subdiretório. Terceiro Passo: Apague tudo o que resta na pasta.
Etapa 4: Mover os arquivos do subdiretório de volta para a pasta.
Etapa 5: Excluir o subdiretório.
Passo Seis: Veja o que você tem.

Um script simples segue.

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 
    
por 12.10.2015 / 22:40