Comando para excluir arquivos, exceto aqueles que começam com um prefixo de outro diretório

2

Digamos que eu esteja atualmente em c: \ test \ user, mas preciso excluir alguns arquivos em um diretório diferente, por exemplo, C: \ testb \ data \ diff. Os arquivos que preciso excluir são aqueles que NÃO começam com AD_. É possível fazer isso em uma instrução de linha de comando?

    
por Liz 19.01.2016 / 05:27

1 resposta

1

MS DOS command delete files except those beginning with a prefix from another directory

The files I need to delete are those that DO NOT begin with AD_. Is it possible to do this in one command line statement?

Linha de comando para excluir de uma pasta específica, exceto para um determinado padrão de nome de arquivo

Basta executar a instrução abaixo a partir da linha de comando com um copiar e colar. Isso usa o loop FOR / F com um DIR canalizado para um FINDSTR comando de qual padrão corresponde para a exclusão.

FOR /F "TOKENS=*" %A IN ('DIR /A-D /B "C:\testb\data\diff" ^| FINDSTR /I /V "AD_"') DO DEL /Q /F "C:\testb\data\diff\%~A"

Se você quiser definir explicitamente seu diretório para excluir da variável, bem como o padrão de arquivo a ser excluído, abaixo está um exemplo de como fazer isso.

SET DelDir=C:\testb\data\diff
SET DelPattern=AD_

FOR /F "TOKENS=*" %A IN ('DIR /A-D /B "%DelDir%" ^| FINDSTR /I /V "%DelPattern%"') DO DEL /Q /F "%DelDir%\%~A"
    
por 19.01.2016 / 07:25