PDA

Показать полную графическую версию : Cntrl-Z для предыдущих операций. Возможно ли??


Sapun
16-06-2018, 14:36
Добрый день. Возникла необходимость в выполнении подобных действий. Допустим нужно выделить некоторые файлы XXX по общей маске имени файла в куче папок корневой папки A . Поиском их выделяю и перемещаю куда нибудь. После чего удаляю всё оставшееся содержимое всей папки А.
И тут было бы идеально, если бы Cntrl-Z имел 2й шаг запоминания операции. Возврат в общую папку А всех файлов в той последовательности подпапок уже без удалённых других файлов,в которой они лежали. Но последнее действие будет "Удаление всех файлов из папки А"

Вообщем детально описал что надо. Есть ли подобные инструменты в винде или может софт какой порекомендуете для подобных операций??

Iska
16-06-2018, 15:02
Sapun, на самом деле Вам надо не «выделять искомое-перемещать-удалять оставшееся-вернуть на место»:
нужно выделить некоторые файлы XXX по общей маске имени файла в куче папок корневой папки A . Поиском их выделяю и перемещаю куда нибудь. »
а выделить файлы, не попадающие под маску. Тогда отпадёт какая-либо необходимость в «перемещать…вернуть на место».

В данном случае рекомендую обратить внимание на оператор NOT (регистр оператора имеет значение): Операторы поиска (http://www.outsidethebox.ms/9975/#operators).

Sapun
16-06-2018, 16:08
Iska, Нет. Подразумевается что поиск идет по маске , а другие файлы рандомные в общей папке с кучей подпапок. То есть выдернуть нужные можно поиском по маске и Cntrl-Z возвращает все (в той же структуре ,как лежали в главной папке и подпапках) их в случае перемещения всех из окна с результатами поиска или удаления в корзину.

Нет . Большие объемы много папок и подпапок. И такое нужно проделывать с многими корневыми папками в отдельности.

Нет проблем все по маске выделить и отложить - ПРОБЛЕМА вернуть их в той же последовательности. А удалять сторонние файлы в общем списке найденного так же муторно. нет конкретной маски по поиску их (точнее есть , но их много - следствие много действий поиска и удаления) ,в отличии от нужных

Говоря проще :
1) Есть папка ААА.
2) В ней куча папок с файлами и подпапок с файлами с разными именами.
3) Среди всего этого есть файлы с конкретной маской по поиску, которые нужно сохранить в них ,а остальное удалить. С минимальным количеством телодвижений.
4) Упорядочить как то нужные файлы (с маской ) в общем списке (по поиску маской *, тоесть всех файлов и папок) не получается , т.к. нет уникальных параметров по расширению или имени файла в начале.

Проще говоря если эту папку прицепить к другой виртуальной машине тройное действие
можно сделать удалив содержание корневой другой ОС. Но задача сделать это по нормальному в системе:

а)поиск по маске и перемещение нужных в др место.
б)удаление всех файлов общим поиском с сохранением структуры папок но уже без файлов из другой ОС.
в) возврат перемещённых файлов в той же структуре в папках.

Видимо придётся так поступить, пока решение не будет найдено. Топорный метод как бы ))

Iska
16-06-2018, 16:23
Sapun, да. Вы ищете по отрицанию маски и удаляете всё найденное, которое не попадает под искомую маску.

Например, у меня есть папка «Мои проекты». Предположим, я хочу удалить всё её содержимое, кроме пакетных файлов, скриптов WSH и PowerShell. Я использую следующий фильтр для поиска:
NOT (*.vbs OR *.cmd OR *.ps1) AND размер:>0
— отфильтровать все объекты, имеющие любое расширение, кроме vbs или cmd или ps1 и имеющие размер, больший нуля. После чего останется только нажать Ctrl-A, Shift-Del.

Iska
16-06-2018, 17:48
3) Среди всего этого есть файлы с конкретной маской по поиску, которые нужно сохранить в них ,а остальное удалить. С минимальным количеством телодвижений. »
Sapun, вот именно для «остальное удалить» и используется маска на исключение. Пример я привёл. Что опять не так?

Busla
16-06-2018, 18:20
может софт какой порекомендуете для подобных операций »
осваивайте PowerShell:
Get-ChildItem -Path c:\temp -Exclude *.txt -Recurse -File | Remove-Item -WhatIf

он как раз и задумывался для подобных задач

ну или можете в Far'е поизвращаться: найти все файлы в нужном каталоге, вывести на временную панель, там выделить нужное по маске, инвертировать выделение

Iska
16-06-2018, 18:59
ну или можете в Far'е поизвращаться: найти все файлы в нужном каталоге, вывести на временную панель, там выделить нужное по маске, инвертировать выделение »
В Far'е не надо извращаться — там ровно так же поддерживаются маски исключения (и регулярки для особо запущенных случаев).

Busla
17-06-2018, 13:16
Не знал (хотя и с такой необходимостью и не сталкивался). Век живи - век учись.
Но запустил Far и сходу не увидел как искать файлы регулярками, или применить маску исключения к поддереву. Iska, подскажите, пожалуйста, как?

Iska
17-06-2018, 14:28
Не знал (хотя и с такой необходимостью и не сталкивался). Век живи - век учись. »
Я сам такой. Казалось бы, вдоль и поперёк знаешь. Ан нет — то одно всплывёт, то другое. То просто банально пропустил что-нибудь новенькое из внедрённого. Я, впрочем, не расстраиваюсь: следует полагать, что ровно так же ранее в том не было нужды. Будет день — будет и пища.

Маски на исключение задаются после масок на включение после символа «|». В моём гипотетическом примере это может выглядеть так:
╔═════════════════════════════ Поиск файла ══════════════════════════════╗
║ Одна или несколько масок файлов: ║
║ *.*|*.vbs;*.cmd;*.ps1 ↓║
╟────────────────────────────────────────────────────────────────────────╢
║ Содержащих текст: ║
║ ↓║
║ Используя кодовую страницу: ║
║ Автоматическое определение ↓║
╟───────────────────────────────────┬────────────────────────────────────╢
║ [ ] Учитывать регистр │ [ ] Искать в архивах ║
║ [ ] Только целые слова │ [ ] Искать папки ║
║ [ ] Искать 16-ричный код │ [x] Искать в символических ссылках ║
║ [ ] Не содержащих │ [ ] Искать в альтернативных потоках║
╟───────────────────────────────────┴────────────────────────────────────╢
║ Выберите область поиска: ║
║ С текущей папки ↓ [ ] Использовать фильтр ║
╟────────────────────────────────────────────────────────────────────────╢
║ { Искать } [ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ] ║
╚════════════════════════════════════════════════════════════════════════╝
Использование регулярного выражения в масках для нашего гипотетического примера может выглядеть, например, так:
╔═════════════════════════════ Поиск файла ══════════════════════════════╗
║ Одна или несколько масок файлов: ║
║ /^(?!.*\.(vbs|cmd|ps1)).+$/i ↓║
╟────────────────────────────────────────────────────────────────────────╢
║ Содержащих текст: ║
║ ↓║
║ Используя кодовую страницу: ║
║ Автоматическое определение ↓║
╟───────────────────────────────────┬────────────────────────────────────╢
║ [ ] Учитывать регистр │ [ ] Искать в архивах ║
║ [ ] Только целые слова │ [ ] Искать папки ║
║ [ ] Искать 16-ричный код │ [x] Искать в символических ссылках ║
║ [ ] Не содержащих │ [ ] Искать в альтернативных потоках║
╟───────────────────────────────────┴────────────────────────────────────╢
║ Выберите область поиска: ║
║ С текущей папки ↓ [ ] Использовать фильтр ║
╟────────────────────────────────────────────────────────────────────────╢
║ { Искать } [ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ] ║
╚════════════════════════════════════════════════════════════════════════╝

Busla
17-06-2018, 14:38
Iska, огромное спасибо!




© OSzone.net 2001-2012