Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
1

Переименовать массив файлов через ТХТ

23.08.2017, 18:45. Показов 3363. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет.
Есть задача: упорядочить 19000 файлов.
есть ТХТ с именами файлов в директории, и есть тхт с новыми именами (строчки совпадают)
как прописать батник? чтобы:
C:\1site\Tuning_DB_BIN\Alfa
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.4L_16V_1998_Benzin___KW_Bosch_0261204481_ Bosch_1037358388_8105.Stage2
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.4L_16V_1998_Benzin___KW_Bosch_0261204481_ Bosch_1037358388_8C0E_Original
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.4L_16V_1998_Benzin___KW_Bosch_0261204481_ Bosch_1037358388_8EF3_stage1
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.6_1996_Benzin___75.8KWKW_Delco_BRYH_GM_BR YH_F014_Original
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.6_1996_Benzin___75.8KWKW_Delco_BRYH_GM_BR YH_F014_stage1
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.6_1998_Benzin___69.9KWKW_Bosch_0261204944 __352979_2854_Original

превратились в
C:\1site\Tuning_DB_BIN\Alfa\1
C:\1site\Tuning_DB_BIN\Alfa\2
C:\1site\Tuning_DB_BIN\Alfa\3
C:\1site\Tuning_DB_BIN\3528
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.6_1996____3547
C:\1site\Tuning_DB_BIN\Alfa\Alfa_145_1.6_1998_Benzin___69.9KWKW_Bosch_0261204944 __352979_2854_Original_____SUPER

тоесть есть и старое название с путем и новое название (правка того-же самого ТХТ), надо переименовать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2017, 18:45
Ответы с готовыми решениями:

Переименовать массив файлов
HI ALL! Порылся на форуме, нашел много чего, пробовал BAT, но не получается. Помогите ПЛИЗ решить...

Переименовать несколько файлов через командную строку одной командой
Задача заключается в том чтобы переименовать несколько файлов через командную строку одной...

Обработка файлов тхт
Добрый вечер! Я выбираю папку с файлами txt, данные хочу вывести в макет. Данные каждого файла...

Разбор тхт файлов
Добрый день! Есть три файла тхт, в них информация Первый файл: 306000008/07;315.60;415.60 ...

16
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
31.08.2017, 17:01  [ТС] 2
готов заплатить
0
5986 / 1995 / 323
Регистрация: 10.12.2013
Сообщений: 6,875
31.08.2017, 20:59 3
- В отделение хотите?
- Что вы! Что вы! Не хочу.
- Деньги в кассу заплатите!
- Сколько нужно? Заплачу!
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
31.08.2017, 21:36 4
PowerShell
1
2
3
4
5
6
7
$filenames=cat filenames.txt # файл(или полный путь до него) с новыми именами - должен содержать только имена без путей и расширений
$source="d:\test\*.txt" # директория нахождения файлов для переименования и маска файлов
 
dir $source |%{$n=0}{
  ren $_.fullname "$($filenames[$n]).txt" -WhatIf
  $n++;
}
Это бесплатно. А вот объяснения как запустить - рубль за файл
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 18:54  [ТС] 5
это получится 19тр.. дороговато
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 19:39 6
Цитата Сообщение от asd55 Посмотреть сообщение
дороговато
Вот прям так и знал, что даже к гадалке не ходил :-)
----------------------------------------------------
Сохранить код как файл с расширением .ps1, есть scriptname.ps1.
Запустить (из батника или cmd): powershell -exec bypass путь\scriptname.ps1
Запуск будет тестовый, то есть без реального переименования, чтобы оценить правильность работы.
Рабочий запуск производится без параметра -WhatIf в коде.
Будет ли скрипт работать как требуется зависит от точности сведений, которые были предоставили и действительно ли
Цитата Сообщение от asd55 Посмотреть сообщение
есть тхт с новыми именами (строчки совпадают)
.
txt с существующими именами файлов скрипту не требуется, поскольку имена файлов он возьмет из указанной директории и по маске расширений.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 19:44  [ТС] 7
если-бы все так просто то я бы воспользовался бесплатными программами по массовому переименованию файлов))
весь смысл в том, что превести имена в порядок я могу только через бд акцес, определив подчеркивание во входящем файле как разделитель полей и далее рассортировав поля в нужной мне последовательности, с последующей трансформацией в тхт, иначе не отсортировать
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 19:49 8
P.S. Нда, сейчас только дошло, что может не совпасть порядок (списка файлов из каталога и списка имен для переименования): но если вы получали список файлов командой dir, то, по идее, команда dir из powershell должна дать такой же лексикографический порядок имен.

Добавлено через 4 минуты
-----------------------------------
То есть список ваших файлов был получен не командой dir, а из БД?
Ну, на такой вариант (синхронное чтение обоих списков из файлов) у меня пока нет решения.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 19:56  [ТС] 9
я получил имена программой NikFileTree получил тхт который и внес в бд, отсортировал из 43-х полей и сократил до 8 (что-бы бд сайта могла их сортировать) но никакого алгоритма по переименованию нет, все в ручную делалось. и вот задача превратить тхт обратно в название файлов. поэтому и пути от корня (хотя это не принципиально на самом деле)

Добавлено через 5 минут
неужели нельзя сопоставить списки переименования имя ДО и имя ПОСЛЕ
в моем понимании это что-то типа ;rename c:/xxxx.bin to c:/yyy.bin
а уж подставить 19000 строк не великая проблема
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 20:01 10
Цитата Сообщение от asd55 Посмотреть сообщение
сопоставить списки переименования имя ДО и имя ПОСЛЕ
Попробуйте так:
PowerShell
1
2
3
4
5
6
7
$filenames = cat "путь\filenames.txt" # файл(или полный путь до него) с новыми именами и расширениями
$source = cat "путь\source.txt" # список существующих файлов с полными путями и расширениями
 
$source |%{$n=0}{
  ren $_ $filenames[$n] -WhatIf
  $n++;
}
P.S. Но я так и не понял есть ли у ваших файлов расширения, чтобы команда ren могла их найти на диске.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 20:07  [ТС] 11
расширения есть но не всегда, есть БАРДАК В НАЗВАНИЯХ ФАЙЛОВ, они нам не нужны расширения, это чистые дампы флешей.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 20:24 12
Цитата Сообщение от asd55 Посмотреть сообщение
они нам не нужны расширения,
Ну раз не нужны и вы уверены что файлы из списка source.txt будут найдены на диске, то они будут переименованы согласно списку имен в файле filenames.txt в том порядке в котором файлы указаны в этих списках и в точности в то имя, которое там указано. NB: В файле filenames.txt должны быть только имена и никаких путей.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 20:28  [ТС] 13
алилуя)) это и было в тз первого поста))))как правильно транскрипцию команд написать?))

хотя уже не особо важно, я лучше прикручу эту задачу к заказу на сайт https://www.cyberforum.ru/showthread.php?t=2033421
нечего самому лазить там что не мое.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 20:39 14
Цитата Сообщение от asd55 Посмотреть сообщение
было в тз первого поста
Ну ТЗ я бы это не назвал :-) Формулировки слишком расплывчаты:
"есть txt" - один (файл) или множество?, "с именами файлов в директории" - на самом деле путями файлов;
Цитата Сообщение от asd55 Посмотреть сообщение
надо переименовать
а как с расширениями, которых в именах файлов не наличествует вовсе, поступать? и т.д.
А если бы кто на батнике решил накидать решение, то и уточнения разных прочих мелочей еще, наверняка, понадобились бы.

Цитата Сообщение от asd55 Посмотреть сообщение
как правильно транскрипцию команд написать?
Опять супер формулировка. Какую транскрипцию? Все пояснения по запуску кода уже даны.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 20:43  [ТС] 15
да ясно все с вами, любитель все усложнить и 19тр на ровном месте...
все решено уже, и давольно просто оказалось.

Добавлено через 1 минуту
тема не актуальна.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
01.09.2017, 22:22 16
Цитата Сообщение от asd55 Посмотреть сообщение
все решено уже, и дOвольно просто оказалось.
И где же мы, изголодавшиеся по жан–жаковской простоте, можем лицезреть это решение?
Я, надеюсь, там всего одна строчка - оно, ведь правда, проще? И даже, о боже, быстрее.
Цитата Сообщение от asd55 Посмотреть сообщение
19тр на ровном месте
Что-то мне подсказывает, что у вас не только умения формулировать, но и чувства юмора тоже нет. Это печально.
0
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 14
01.09.2017, 23:01  [ТС] 17
нее, все намного проще, 3 банки темного гинеса админу с соседнего офиса)))
0
01.09.2017, 23:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2017, 23:01
Помогаю со студенческими работами здесь

Массовое редактирование тхт файлов
Подскажите плиз...Как правильно написать такой скрипт? Даем скрипту папку с тхт файлами он...

Макрос обработки тхт файлов
Привет! Есть такая задача - есть txt-файлы в несколько строк, где в каждой строке есть данные,...

Как построить список тхт файлов
Здраствуйте. Подскажите код для построения списка текстовых файлов например в ListBox

Изменение тхт файлов внутри архива
Друзья, наставьте на путь истинный=). Есть огромное количество .zip архивов внутри каждой из...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru