Допустим, я в данный момент нахожусь в c:\test\user, но мне нужно удалить определенные файлы в другом каталоге, скажем C:\testb\data\diff. Файлы, которые мне нужно удалить, это те, которые НЕ начинаются с AD_. Возможно ли сделать это в одном операторе командной строки?
1 ответ
Команда MS DOS удаляет файлы, кроме тех, которые начинаются с префикса из другого каталога
Файлы, которые мне нужно удалить, это те, которые НЕ начинаются с AD_. Возможно ли сделать это в одном операторе командной строки?
Командная строка для удаления из определенной папки, кроме определенного шаблона имени файла
Просто запустите приведенный ниже оператор из командной строки с копией и вставкой. При этом используется цикл FOR /F с каналом DIR , переданным команде FINDSTR того, какой шаблон следует сопоставить для исключения.
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"
Если вы хотите явно указать свой каталог для удаления из переменной, а также шаблон файла для исключения, ниже приведен пример, как сделать это таким образом.
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"