Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Переименование фалов, Массовое переименование фалов по маске
bumer
сообщение 14.9.2019, 12:17
Сообщение #1


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Не умею я толком разъяснять, но попробую. Хотел использовать уже готовое ПО, но не нашёл, или не разобрался нужным мне функционалом. Помогите, тыкнете пальцем!
В общем понадобилось мне массовое переименование фалов по маске.
Вот так выгляди название моих файлов:
test02_24_33.adt <-- типо начало, цифры 24_33 могут меняться от 0 до 64...
test02_25_24.adt
...
test02_25_33.adt
test02_26_24.adt
...
test02_32_33.adt
test02_33_24.adt <-- типо конец
Прикрепленный файл  1.zip ( 1,1 мегабайт ) Кол-во скачиваний: 190
<-- это, надо переделать в --> Прикрепленный файл  2.zip ( 666,28 килобайт ) Кол-во скачиваний: 180

Нужно чтоб происходило переименование и файлы не путались. Не представляю как вообще всё это возможно сделать. Но править руками сотни файлы, уходит масса времени 8(

test02_14_33.adt <-- типо начало править в это...
test02_15_24.adt
...
test02_15_33.adt <-- типо серединка списка, таких файлов много. их нельзя путать местами
test02_16_24.adt
...
test02_22_33.adt
test02_23_24.adt <-- типо конец
Прикрепленный файл  2.zip ( 666,28 килобайт ) Кол-во скачиваний: 180
<-- добавил образцы файлов чтоб было под рукой. для тестов
Как бы я могу сгенерировать файлы с нужным названием, годных для использования, но вот нужно рабочие переделать по этому шаблону, просто писец какой то...
Если есть конструктивные мысли, или знаете уже готовое ПО подскажите... а так мне страшно глядеть на груду файлов...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 14:41
Сообщение #2


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



С тоской глядя на файлы, я размышляю...
1) У меня будет папка с файлами которые надо правильно переименовать
2) У меня есть возможность сгенерировать файлами с правильными названиями...
- Как бы попроще сделать?
Я вот ручками, читая правильное названия файла, правлю по очереди
- Как это может сделать программа?
Наверно может считать названия в какой нить текстовый файл...
Затем беря эти названия по очереди из списка, переименовывать последовательно нужные нам файлы...
- Но вот вопрос, как ПО узнает какой очерёдности файлам присваивать имена?
даже не знаю, да и нужно ли это?
П.С. Не знаю прям как подступится...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 14.9.2019, 14:56
Сообщение #3


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Сделай вид список. И создай два скриншота что нужно переименовать(до) и конечный результат переимееования(после) и выложи на форум
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 15:29
Сообщение #4


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(FREEON @ 14.9.2019, 14:56) *

Сделай вид список. И создай два скриншота что нужно переименовать(до) и конечный результат переимееования(после) и выложи на форум

Если скрины помогут то прилагаю их виде двух файлов
Прикрепленное изображение <-- тут то что надо переименовать
Прикрепленное изображение <-- тут как должно стать
П.С. в первом посте я приложил тестовый файл, если его осилит ПО то думаю и справится файлами от test02_0_0.adt до test02_64_64.adt
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.9.2019, 15:49
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
цифры 24_33 могут меняться от 0 до 64

Как определять во что переименовывать? Например 0_58 во что переименовать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 16:19
Сообщение #6


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(cirus @ 14.9.2019, 15:49) *

Как определять во что переименовывать? Например 0_58 во что переименовать?

Только ориентируясь на специально сгенерированные файлы, беря от них название по очередности в порядке возрастания, или наоборот...
П.С. Чтоб стало чуточку понятней. то надо представить систему координат X, Y сторонами от 0 до 64

Цитата(cirus @ 14.9.2019, 15:49) *

Как определять во что переименовывать? Например 0_58 во что переименовать?

Только ориентируясь на специально сгенерированные файлы, беря от них название по очередности в порядке возрастания, или наоборот...
П.С. Чтоб стало чуточку понятней. то надо представить систему координат X, Y сторонами от 0 до 64
Прикрепленное изображение <-- вот поле! Каждый квадратик примерно 2000 на 2000 метров ландшафта. Поэтому путать сопоставления файлов нельзя
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.9.2019, 16:21
Сообщение #7


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
test02_24_33.adt <-- типо начало, цифры 24_33 могут меняться от 0 до 64...
test02_14_33.adt <-- типо начало править в это...

Почему 24 переименовывать в 14? На основании чего?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 16:35
Сообщение #8


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(cirus @ 14.9.2019, 16:21) *

Почему 24 переименовывать в 14? На основании чего?

На основании собственного выбора, или необходимости. Я выше писал, координаты... То ест файлы можно сгенерировать, уже имея пустые файлы + правильные имена, переименовать нужные правильные файлы. Получим территорию с ландшафтом... Руками это делать очень, тяжко, особенно если площадь увеличится ещё несколько раз!
Прикрепленное изображение <-- Вот попробовал нарисовать, чтоб стало понятней..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 14.9.2019, 16:48
Сообщение #9


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(bumer @ 14.9.2019, 12:17) *
В общем понадобилось мне массовое переименование фалов

Если
Цитата
test02_24_33.adt переименовывается в test02_14_33.adt

У меня вопрос как у cirusa: test02_04_33.adt во что переименовать?


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 17:08
Сообщение #10


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(Fors1k @ 14.9.2019, 16:48) *

Если
У меня вопрос как у cirusa: test02_04_33.adt во что переименовать?

Если файл один просто, просто редактируешь ручками, а если таких файлов становится сотнями, то это уже пришёл писец!
Выше я пытался чуть рассуждать, каким образом, из списка который вы сгенерировали файлы. Скрипт выберет по порядку возрастания или убывания...
test02_24_33.adt
test02_25_24.adt
...
test02_25_33.adt
test02_26_24.adt
...
test02_32_33.adt
test02_33_24.adt
Просто скачайте файлы в первом посте, файлы в папке будут стоять в порядке возрастания, значит логика есть и перебор точно возможен
П.С. Кажется я понял то вы спрашиваете, типа откуда я возьму список, файлов по которому я буду ориентироваться? У меня файлы генерирует Программа. Но когда у вас пару файлов то их создать можно в ручную. Выбираете всегда вы, как выгодней, наверно можно сделать четыре направления, лишь бы это вам подходило. Например test02_04_33.adt смотрим по оси Х можно взять 3, 4, 5 по оси Y 32, 33,34 можно взять, Для более больших территорий вариаций больше. Поэтому определяется вручную пользователям, лишь бы сопряжения было...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 14.9.2019, 17:13
Сообщение #11


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(bumer @ 14.9.2019, 17:08) *
Просто скачайте файлы в первом посте, файлы в папке будут стоять в порядке возрастания, значит логика есть и перебор точно возможен
Прикрепленный файл  1.zip ( 1,1 мегабайт ) Кол-во скачиваний: 190

Ну, окей, вот ответ на первый пост. Можешь пробовать.
Код
set $path D:\test\1\    // тут указать путь к папке с этими файлами
dir (%r $path *.adt*)
for #i 1 size(%r)
    set $a %r[#i 3]%r[#i 4]
    set #a copy(%r[#i 3] 8 1) - 1
    set $b string_replace ($a copy(%r[#i 3] 7 2) _#a)
    filecopy ($path$a $path$b)
    filedelete ($path$a)
end_for
end_script

До

test02_24_33.adt
test02_25_24.adt
test02_25_33.adt
test02_26_24.adt
test02_32_33.adt
test02_33_24.adt

После

test02_14_33.adt
test02_15_24.adt
test02_15_33.adt
test02_16_24.adt
test02_22_33.adt
test02_23_24.adt


Только что делать если изначальное имя файла test02_04_33.adt - пока непонятно.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 17:41
Сообщение #12


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(Fors1k @ 14.9.2019, 17:13) *

Ну, пожалуйста, вот ответ на первый пост. Можешь пробовать.
Код
set $path D:\test\1\    // тут указать путь к папке с этими файлами
dir (%r $path *.adt*)
for #i 1 size(%r)
    set $a %r[#i 3].adt
    set #a copy(%r[#i 3] 8 1) - 1
    set $b string_replace ($a copy(%r[#i 3] 7 2) _#a)
    filecopy ($path$a $path$b)
    filedelete ($path$a)
end_for
end_script

До

test02_24_33.adt
test02_25_24.adt
test02_25_33.adt
test02_26_24.adt
test02_32_33.adt
test02_33_24.adt

После

test02_14_33.adt
test02_15_24.adt
test02_15_33.adt
test02_16_24.adt
test02_22_33.adt
test02_23_24.adt


Только что делать если изначальное имя файла test02_04_33.adt - пока непонятно.

Вы просто бог кодинга! Кажется у меня всё переименновалось. Если можно разъясните, то есть сделайте коменты скрипту, чтоб я мог тоже менять параметры, в зависимости от желаемого направления, право в лево или вниз или верх. Там цифры где то другие надо подставить? Сейчас , как я понимаю сдвиг в лево?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 14.9.2019, 18:43
Сообщение #13


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Если я правильно понял задачу
Код
//-----Настройки скрипта
set $path D:\test\1\    // тут указать путь к папке с этими файлами
set $x - 10             // - влево; + вправо; размер сдвига; пусто = не двигать
set $y                  // - вверх; + вниз; размер сдвига; пусто = не двигать
//-----Скрипт
if $x !=
dir (%r $path *.adt*)
for #i 1 size(%r)
    set $a %r[#i 3]%r[#i 4]
    set #a posex(_ $a) + 1
    set #a1 posex(_ $a #a) + 1
    set #dc #a1 - #a - 1
    set #b copy($a #a #dc) $x
    set $b delete($a #a #dc)
    set $b insert(#b $b #a)
    filerename ($path$a $path$b)
end_for
end_if
if $y !=
dir (%r $path *.adt*)
for #i 1 size(%r)
    set $a %r[#i 3]%r[#i 4]
    set #a posex(_ $a) + 1
    set #a1 posex(_ $a #a) + 1
    set #dc size($a) - #a1 - 3
    set #b copy($a #a1 #dc) $y
    set $b delete($a #a1 #dc)
    set $b insert(#b $b #a1)
    filerename ($path$a $path$b)
end_for
end_if
end_script


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 19:46
Сообщение #14


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Вторую часть ещё не проверил, но вот результат работы первого кода уже есть!
Прикрепленное изображение <-- Огромное спасибо, эта штука так облегчат рутинный и тяжёлый для меня труд!
П.С По работе другого куска скрипта я вам отпишу позже, как только его испытаю..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 14.9.2019, 23:37
Сообщение #15


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Проверил работу второго кода, отлично работает! Включал сдвиг верх...
П.С. Отличный функционал, можно смело сделать специализированную программку для массового переименование фалов! Такой именно фичей нет больше ПО

Уважаемый Fors1k, могу ли я использовать ваш код, для примера работы, просить стороннего разработчика сделать такое ПО?

Вообще кто нибудь, сможет скомпилировать специализированную программку, для переименования файлов?

Ещё рас, огромное спасибо за сделанную вами работу, она как чудо хороша, в решении моей задачи!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 16.9.2019, 14:21
Сообщение #16


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Да пожалуйста, используй, если это поможет.
Кстати обнови у себя скрипт, я его немного изменил. Будет работать быстрее.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 16.9.2019, 18:46
Сообщение #17


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(Fors1k @ 16.9.2019, 14:21) *

Да пожалуйста, используй, если это поможет.
Кстати обнови у себя скрипт, я его немного изменил. Будет работать быстрее.

Хм действительно, скрипт изменился, а я и не заметил...
Спасибо вам за такой щепетильный подход к делу!
П.С. Ну и за разрешение демонстрации, в качестве примера работы, тоже спасибо! Остаётся всё таки надежда уговорить кого нить из разработчиков, добавить и этот функционал, или отельную прогу скомпилировать, понимающего в этом человека...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 17.9.2019, 9:13
Сообщение #18


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Целых три дня я был безумно рад этому чуду скрипту! но человек та ещё скотинка, всегда что то хочет большего... вот набрался храбрости и ещё рас обращаюсь, главной моей надежде Fors1k
Можно ли написать ещё один тут же скриптик, с функцией чуть отличной от уже имеющийго. Возможностью передвигать блок по полю, путем переименования файлов. Прикреплю файлик с изображением, для пояснения.
Прикрепленное изображение <-- красный квадратик с координатами, передвинуть на любо место в поле, в данном случаи на будущие место зелёный квадратик.

Приложу файл, для теста, его и надо будет переименовывать
Прикрепленный файл  test02.zip ( 1,74 мегабайт ) Кол-во скачиваний: 172


Прикрепленный файл  test02_1_.zip ( 1,73 мегабайт ) Кол-во скачиваний: 156
<-- образец, то что должно получатся

П.С. Если я как то коряво рассказал, то уточняйте, я постараюсь донести смысл. Ели такой трюк возможен с переименованием то это позволит облегчить передвижением координат файлов, бес потери находящихся внутри данных ландшафта, быстро а не в ручную...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.9.2019, 12:58
Сообщение #19


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Дополнил код, скопируй заново. Теперь можешь двигать как угодно.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 17.9.2019, 13:58
Сообщение #20


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(Fors1k @ 17.9.2019, 12:58) *

Дополнил код, скопируй заново. Теперь можешь двигать как угодно.

Пожалуйста, если возможно, более подробно прокоментируй части кода, кто что делает. Очень прошу!
Как подступится и на что глядеть?
П.С. Спасибо за код, испытаю и сообщу!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 18:09
Designed by Nickostyle