Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37

Работа с большим массивом файлов

19.12.2017, 12:30. Показов 4847. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача удалить Файлы из папки по списку txt файла. Пробовал реализовать данную задачу при помощи cmd, но как я пологаю больше 50000 строк он не читает.
Если более предметно: в папке лежит 4 500 000 файлов и есть собранный список с 4 000 000 строками. Нужно чтобы проооамма по названию вычисляла файл и удаляла его из папки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2017, 12:30
Ответы с готовыми решениями:

Работа с большим массивом
Всем привет. С шарпах я почти не бум-бум и по этому задаю сей смешной и простой вопрос. Как мне засунуть эти числа в двумерный массив? ...

Работа с большим массивом xml
В рабочих целях появилась необходимость произвести сверку xml файлов со списком. В списке первоначальном 4,5 млн строк с записями, файлов...

Некоторые действия над не большим массивом
Нужна помощь в написании программы, которая выполняет ряд действий над массивом. Начало я написал, как вы можете увидеть ниже, и так нужно...

82
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 13:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от YuS_2 Посмотреть сообщение
преднамеренно использует наибольший расход на считывание всех данных и размещение их в памяти (из расчета на ускорение)
По моему, в контексте этой задачи, временем затраченным на считывание списка, на фоне предстоящих дисковых операций по удалению 4 миллионов файлов, можно просто пренебречь...
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 13:27  [ТС]
Отработал скрипт из 38 сообщения, удалил все, кроме текстового файла. И в ISP показывает, что до сих пор выполняется.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 13:35
Цитата Сообщение от KDE777 Посмотреть сообщение
на фоне предстоящих дисковых операций по удалению 4 миллионов файлов, можно просто пренебречь...
Может быть и так...
Кстати:
PowerShell
1
2
3
4
5
6
7
8
9
WorkFlow RemoveItem ($list){
    foreach -parallel ($line in $list){
        Remove-Item -Path "C:\Temp\_Files_\$line" -Force -EA SilentlyContinue
    }
}
 
foreach ($txt_block in Get-Content -Path C:\Temp\list.txt  -ReadCount 10){
    RemoveItem -list $txt_block
}
10000 файлов, удаление из них по списку 5000 -
Code
1
2
3
4
5
6
7
8
9
10
11
Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 47
Milliseconds      : 181
Ticks             : 2271816718
TotalDays         : 0,00262941749768518
TotalHours        : 0,0631060199444444
TotalMinutes      : 3,78636119666667
TotalSeconds      : 227,1816718
TotalMilliseconds : 227181,6718
- просто статистика.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 13:42  [ТС]
YuS_2, А запускать через что? iSP или как?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 13:42
Цитата Сообщение от maksimkaa Посмотреть сообщение
удалил все, кроме текстового файла. И в ISP показывает, что до сих пор выполняется.
Он удалит всё, что записано в списке файлов, не более того. Как-то слишком кратко и не совсем понятно Вы описываете результаты...
Скопируйте тот код (#38), создайте и запустите script.ps1... естественно подкорректировав пути и наименование файла со списком.
Ах, да, файл-список лучше формировать в кодировке 1251, как и собственно скрипт... либо указывать необходимую кодировку при использовании командлета Get-Content
0
20.12.2017, 13:46

Не по теме:

Вся эта тема мне напоминает один эксперимент, называется он - китайская комната

0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 13:53
Цитата Сообщение от YuS_2 Посмотреть сообщение
просто статистика
Охотно верю, для каких-то дисков и 10 параллельных операций смерти подобно. В этом случае никаких WorkFlow не нужно. А бывают дисковые массивы на 24 шпинделя или SSD на PCI-E + NVMe или вовсе сетевой ресурс и тогда уже можно попробовать получить преимущество от многопоточности. Я сразу написал, что это только пример - "Число для ReadCount подберите сами, оно означает по сколько строчек будет считываться из списка и соответственно одновременно удаляться. Т.е. нужно учитывать IOPS вашего диска".

Делаем ReadCount = 1 и удаляем файлы последовательно и при этом не имея проблем с RAM.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 16:04  [ТС]
YuS_2, При запуске сплошняком красный текст с ошибками.
0
20.12.2017, 16:19

Не по теме:

Цитата Сообщение от maksimkaa Посмотреть сообщение
При запуске сплошняком красный текст с ошибками.
Сейчас достанем хрустальный шар и посмотрим, что там у вас написано красным текстом :)

0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 16:27  [ТС]
KDE777, Выдает такую ошибку. Удаление не производит.
Миниатюры
Работа с большим массивом файлов  
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 16:44
Цитата Сообщение от maksimkaa Посмотреть сообщение
Выдает такую ошибку. Удаление не производит.
В ошибке сказано, что вы пытаетесь удалить никакой не файл, а папку c:\rsp2, которая в свою очередь содержит в себе дочерние элементы, однако ключ Recurse не указан и поэтому, хотите ли вы продолжить. И так по кругу.

Очевидно, что-то не так с вашим списком для удаления или как-то не так вы вставили в скрипт (кстати какой?) нужные пути и имена папок/файлов.

P.S. Сообщения об ошибках лучше просто скопировать и показать здесь в виде текста.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 16:48  [ТС]
KDE777, Да вроде с путями все нормально. Так ладно, а если я хочу файлы удалить, мне нужно дописать line?
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 16:52
Цитата Сообщение от maksimkaa Посмотреть сообщение
Да вроде с путями все нормально.
Например, такая ошибка будет если в вашем списке есть пустые строчки.

Добавлено через 33 секунды
Цитата Сообщение от maksimkaa Посмотреть сообщение
Так ладно, а если я хочу файлы удалить, мне нужно дописать line
Не понял о чём вы?
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
20.12.2017, 16:53  [ТС]
KDE777, Сейчас только одна такая строчка вылезла. Из кода в сообщении 63 я удалил $line.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.12.2017, 17:19
Цитата Сообщение от maksimkaa Посмотреть сообщение
Сейчас только одна такая строчка вылезла. Из кода в сообщении 63 я удалил $line.
И зачем не понимая последствий вы меняете скрипт??? Убрав $line из этого скрипта вы 4 миллиона раз будете пытаться удалить корневую папку со всеми файлами

Вот вам самый простой вариант:

PowerShell
1
2
3
4
5
6
7
8
9
10
# файл со списком для удаления
$List = "C:\Temp\file_list.txt"
 
# путь к папке с файлами для удаления
$Folder = "C:\Temp\_Files"
 
foreach ($file in Get-Content -Path $List -Encoding Default)
{
    if ($file){Remove-Item -Path "$Folder\$file" -Force}
}
От вас требуется только указать файл со списком, путь к папке с файлами для удаления.

И главное проверить, что PowerShell понимает кириллицу в вашем списке:

PowerShell
1
Get-Content -Path "C:\Temp\file_list.txt" -Encoding Default
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
20.12.2017, 19:52
Цитата Сообщение от maksimkaa Посмотреть сообщение
При запуске сплошняком красный текст с ошибками.

Как?! Ну вот как это можно сделать?

Вот тут Вы пишете:
Цитата Сообщение от maksimkaa Посмотреть сообщение
Отработал скрипт из 38 сообщения, удалил все, кроме текстового файла.
И после этого:
Цитата Сообщение от YuS_2 Посмотреть сообщение
Скопируйте тот код (#38), создайте и запустите script.ps1... естественно подкорректировав пути и наименование файла со списком.
красный текст...
Вот, правильно же Вам говорят:
Показывайте ошибки, скопировав их прямо из консоли и когда сообщаете об ошибках, уточняйте какой скрипт запускался, да и вообще, лучше его полностью скопировать (надеюсь Ваши пути и название файла не представляют из себя коммерческой тайны? ) и выложить вместе с сообщением об ошибке...

Не по теме:

Цитата Сообщение от KDE777 Посмотреть сообщение
Сейчас достанем хрустальный шар и посмотрим, что там у вас написано красным текстом
Боюсь, тут понадобятся ещё и кофейная гуща, и шаманский бубен... у меня их нет, если что :)

0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
21.12.2017, 09:45  [ТС]
KDE777,
проверить, что PowerShell понимает кириллицу в вашем списке:

Этот код нужно дописать к предыдущему (из вашего поста) или отдельно запустить?
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
21.12.2017, 09:56
Цитата Сообщение от maksimkaa Посмотреть сообщение
Этот код нужно дописать к предыдущему (из вашего поста) или отдельно запустить?
Запустить отдельно, причём перед выполнением скрипта для удаления. Вы должны убедиться, что на экране корректно отображаются имена файлов для удаления.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 37
21.12.2017, 15:10  [ТС]
KDE777, Имена отображаются некорректно, вместо русских символов иероглифы.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
21.12.2017, 15:36
Цитата Сообщение от maksimkaa Посмотреть сообщение
Имена отображаются некорректно, вместо русских символов иероглифы.
Это я и просил вас проверить ещё в сообщение #50. Вот из-за того, что вы не делаете, что вам посоветовали или не отвечаете на уточняющие вопросы в этой теме уже 6 страниц...

Пересохраните ваш список в Юникоде или Win1251 (как уже тоже вам советовали).

Или попробуйте запустить Get-Content с указанием других кодировок: Unicode, UTF8, UTF7, UTF32, Ascii, Default, Oem (написать после ключа -Encoding)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2017, 15:36

Vuejs / vuex с большим массивом данных
Всем привет, Разбираясь с vuex(laravel 5.7 / Vuejs 2.6 / "vuex": "^3.1.0"), не нашел в мануалах ответов на некоторые вопросы и...

Хелп зависает прога с большим массивом, STACK_SIZE в CoIDE
Здравствуйте! Для теста написал программу мигающую светодиодом, она работала нормально но когда попытался создать массив с 200...

Vector или new при работе с большим массивом данных?
Подскажите, что лучше использовать (с точки зрения быстродействия) при работе с большим массивом данных - vector или динамический массив?...

Нарушение прав доступа при чтении при работе с большим массивом
Здравствуйте. Пытаюсь заполнить большой массив, вроде правильно объявил его, но на разных итерациях (от i=92106 и выше ...) появляется...

"Параллельные" вычисления над большим массивом данных
Есть массив данных (под 500к), над ними нужно провести вычисления. Вычисления не самые быстрые, и я хотел бы воспользоваться пулом потоков....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru