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"