2

Для примера файла я хотел бы удалить все файлы, соответствующие.+?[А-f0-9] {4} .html (т. Е. Любой html-файл, заканчивающийся шестнадцатеричным четырехзначным числом). Таким образом, paged47c.html будет удален, но page.html останется.

Для примера папки я хотел бы удалить все папки, соответствующие.+?[AZ]+ (т.е. любая папка, содержащая заглавную букву). Таким образом, some-folderSE93_89ds/ будет удалена, а some-folder/ останется.

Я не очень много работаю с командной строкой, но я мог бы получить пример с "del" для меня. В качестве альтернативы, есть ли простая программа с графическим интерфейсом для Windows, которая будет делать это?

2 ответа2

4

Я бы сказал, что самый простой способ, хотя и не прямой путь, - это выполнить вашу специализированную команду dir (вы можете использовать /b и /s переключены, чтобы она просто перечисляла имя файла и просматривать каталоги) и перенаправить его в файл. Откройте его в блокноте (или вставьте ваш любимый редактор), найдите и замените, чтобы добавить "del" в начало строк, сохраните его как mydel.bat и выполните.

Вот пример:

dir /s /b *.html > mydel.bat
notepad mydel.bat
call mydel.bat

1

Используйте следующую строку в powershell:

Get-ChildItem -Recurse C:\| where { ! $_.PSIsContainer } | Where-Object {$_.Name -match ".+?[a-f0-9]{4}.html"}

Для случая файла, для случая использования папки:

Get-ChildItem -Recurse C:\| Where-Object { $_.PSIsContainer }| Where-Object {$_.Name -match ".+?[A-Z]+"}

Сохраните оба в переменных, а затем используйте Remove-Item

Предупреждение: в моей команде я использую корень C:\ в качестве исходного местоположения. Если вы хотите передать его вывод в Remove-Item и запускаете его как администратор, это плохая идея. По крайней мере, выполните одно из следующих действий:

  1. Специально исключить Windows
  2. Использование флага « what-if
  3. Не запускайте от имени администратора (если соответствующие файлы не находятся в защищенном каталоге, это не имеет значения)
  4. Не запускайте C:\ а скорее из более безопасного места

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .