Автор Тема: Удаление всех файлов кроме указанных  (Прочитано 2050 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.3.14.2

Описание: Удаление всех файлов и папок кроме указанных в списке.

Примечания: То есть кидаешь скрипт в папку и он удаляет все лишнее.

Русское сообщество AutoIt

Удаление всех файлов кроме указанных
« Отправлен: Декабрь 04, 2016, 18:58:43 »

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #1, Отправлен: Декабрь 04, 2016, 21:56:57 »
Список в каком виде ? Пример дайте.

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #2, Отправлен: Декабрь 06, 2016, 13:25:53 »
Список в каком виде ? Пример дайте.
\system\test.dll
Как то так

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #3, Отправлен: Декабрь 06, 2016, 15:39:12 »
Цитировать
Как то так
Придётся гадать... Список -это обычный текстовый файл, где каждый файл в новой строке, так-же , учитывая , что Вы скрипт будете запускать из той папки, в которой будут удаляться файлы, то значение имеет только имя файла, например для Вашего примера файл "test.dll" попадёт в исключения и удаляться не будет. Верно ? Так-же, что-бы исключить лишние диалоги выбора файла списка он (список) должен иметь какое-то узнаваемое имя...
Можно так :
(нажмите для показа/скрытия)
Копируете этот скрипт в папку, запускаете его и он удалит все файлы из этой папки , кроме тех, что в списке исключений (не удалится сам список и исполняемый скрипт, даже если их нет в списке ).
« Последнее редактирование: Декабрь 06, 2016, 16:50:00 от ra4o »

Русское сообщество AutoIt

Re: Удаление всех файлов кроме указанных
« Ответ #3 Отправлен: Декабрь 06, 2016, 15:39:12 »

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #4, Отправлен: Декабрь 06, 2016, 16:47:43 »
Но ведь если test.dll будет не в папке систем его тоже хотелось бы удалить и еще можно записать список в скрипт? Просто 1 файл удобней)) Большое спасибо и за это приду домой опробую

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #5, Отправлен: Декабрь 06, 2016, 16:50:55 »
Изменил скрипт - теперь удаляет и файлы и папки
Цитировать
Но ведь если test.dll будет не в папке систем его тоже хотелось бы удалить
тогда нужно записывать полный путь к файлу, ведь папка систем может быть где угодно
Цитировать
можно записать список в скрипт?
Можно, по-этому я сразу и просил
Цитировать
Список в каком виде ? Пример дайте.
что-бы не гадать.
С этим скриптом работайте аккуратно, что-бы не удалить чего лишнего. Файлы после удаления скриптом в корзину не попадают и восстановить их будет сложно !
Давайте точнее определимся с задачей :
- Список файлов и папок исключения записать в тело скрипта (например массивом)
- каждый элемент списка  это полный путь к файлу
- все папки и файлы , которые находятся в дирректории скрипта и их нет в массиве исключений - удалятся

Так ?
Страшный скрипт получится !Случайный запуск не в той дирректории приведёт к печальным последствиям !
« Последнее редактирование: Декабрь 06, 2016, 17:04:50 от ra4o »

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #6, Отправлен: Декабрь 06, 2016, 17:30:53 »
Все верно но ведь можно сделать стартовый запрос если Вы так переживаете))

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #7, Отправлен: Декабрь 06, 2016, 17:39:42 »
Пути я не могу сейчас написать так как на работе еще 3 часа сидеть и названий не помню просто для примера напишите пару путей, а я уже свои потом допишу. Я так понимаю они должны быть такими @scriptdir\system\test.dll?

Русское сообщество AutoIt

Re: Удаление всех файлов кроме указанных
« Ответ #7 Отправлен: Декабрь 06, 2016, 17:39:42 »

Помечен как лучший ответ пользователем Tempo Отправлен Декабрь 06, 2016, 19:22:27

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #8, Отправлен: Декабрь 06, 2016, 17:46:32 »
Не обязательно относительно расположения скрипта, может быть путь , например "C:\Windows\Temp" итп
Мне не нужно конкретные пути, важно понять что там должно быть, формат записи. Свои пути уже вставите в скрипт сами.
Вот вариант без дополнительного файла списка:
(нажмите для показа/скрытия)

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2379
  • Репутация: 410
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Удаление всех файлов кроме указанных
« Ответ #9, Отправлен: Декабрь 06, 2016, 18:30:18 »
мой вариант до кучи :)

(нажмите для показа/скрытия)

Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #10, Отправлен: Декабрь 06, 2016, 19:57:21 »
Не обязательно относительно расположения скрипта, может быть путь , например "C:\Windows\Temp" итп
Мне не нужно конкретные пути, важно понять что там должно быть, формат записи. Свои пути уже вставите в скрипт сами.
Вот вариант без дополнительного файла списка:
(нажмите для показа/скрытия)
Спасибо всем за помощь вариант от ra4o прекрасно работает))


Добавлено: Декабрь 06, 2016, 19:59:59
Появилась одна проблема, а есть ли ограничение на количество файлов?


Добавлено: Декабрь 06, 2016, 20:08:42
Больше 89 выдает ошибку с обрезком макроса и ошибка неизвестный макрос)) Извините что не сказал сразу что файлов много около 250
« Последнее редактирование: Декабрь 06, 2016, 20:08:42 от Tempo, Причина: Объединение сообщений »

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #11, Отправлен: Декабрь 06, 2016, 20:33:00 »
250 - это совсем не много... попробуйте проверить чтение содержимого папки в массив , дописав
Код: AutoIt [Выделить]
Local $aAllFiles = _FileListToArray(@ScriptDir)
;Добавить следующую строку (временно для проверки)
_ArrayDisplay($aAllFiles)
 


Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #12, Отправлен: Декабрь 06, 2016, 22:41:27 »
Извиняюсь плохо описал проблему ошибка возникает когда добавить слишком много исключений если больше 89 ошибка наверно из за того что слишком много текста в 1 строке)) Есть 250 файлов которые не надо удалять
« Последнее редактирование: Декабрь 06, 2016, 22:48:20 от Tempo »

Оффлайн ra4o [?]

  • Продвинутый
  • ***
  • Сообщений: 451
  • Репутация: 64
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #13, Отправлен: Декабрь 07, 2016, 09:45:28 »
для массива 250 элементов тоже мелочь, попробуйте записывать массив не в одну строку, а переносить знаком "_" с пробелом перед ним , например так :
Код: AutoIt [Выделить]
Local $aFiles[4] = ['Исключение 1' , _
'Исключение 2', _
'Исключение 3', _
'Исключение 4']
 


Оффлайн Tempo [?]

  • Новичок
  • *
  • Сообщений: 8

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление всех файлов кроме указанных
« Ответ #14, Отправлен: Декабрь 09, 2016, 00:27:26 »
Спасибо все хорошо ошибки нет но как я понимаю
Код: AutoIt [Выделить]
не возвращает того что находиться в подкаталогах проверяемого каталога поэтому я сделал проверку каждого подкаталога отдельно вроде работает))

Русское сообщество AutoIt

Re: Удаление всех файлов кроме указанных
« Ответ #14 Отправлен: Декабрь 09, 2016, 00:27:26 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4366 Просмотров
Последний ответ Январь 16, 2012, 00:39:41
от CreatoR
1 Ответов
2627 Просмотров
Последний ответ Декабрь 05, 2009, 23:43:42
от mini
10 Ответов
6369 Просмотров
Последний ответ Декабрь 21, 2010, 13:25:04
от madmasles
1 Ответов
1859 Просмотров
Последний ответ Июль 31, 2011, 19:01:23
от gregaz
1 Ответов
1513 Просмотров
Последний ответ Март 10, 2014, 21:30:27
от sngr
4 Ответов
1039 Просмотров
Последний ответ Октябрь 30, 2014, 22:51:06
от AZJIO
4 Ответов
1347 Просмотров
Последний ответ Январь 03, 2015, 19:08:39
от iwak
6 Ответов
1856 Просмотров
Последний ответ Октябрь 14, 2015, 15:03:47
от NinjaScript
10 Ответов
1029 Просмотров
Последний ответ Июнь 21, 2016, 17:48:17
от Dk
2 Ответов
385 Просмотров
Последний ответ Октябрь 25, 2016, 08:08:25
от Alofa