Алгоритм переименования
Средство - инструмент Batch rename просмотровщика IrfanView. Этот инструмент переименовывает файлы по списку сверху вниз. Как их положишь в список, так и переименует.
Спрашивается, как заполнить список оптимальным способом, не прибегая к написанию посторонней программы, и используя только средства выделения Windows Explorer, а также ринеймер просмотровщика.
Спрашивается, как заполнить список оптимальным способом, не прибегая к написанию посторонней программы, и используя только средства выделения Windows Explorer, а также ринеймер просмотровщика.
Подсказываю: я решил эту задачу в два подхода. Первый - переименовать чётные файлы так, чтобы номера численно равнялись номерам нечётных, а количество нулей слева было хотя бы на один меньше. То есть, нечётный файл имеет номер 0001, а чётный - 001, и т.д. Виндоуз Эксплорер автоматически отсортирует их в нужном порядке, после чего их надо ещё раз потоком переименовать для удобства.
По-моему, вполне программерская задача. :)
Подсказываю: я решил эту задачу в два подхода. Первый - переименовать чётные файлы так, чтобы номера численно равнялись номерам нечётных, а количество нулей слева было хотя бы на один меньше. То есть, нечётный файл имеет номер 0001, а чётный - 001, и т.д. Виндоуз Эксплорер автоматически отсортирует их в нужном порядке, после чего их надо ещё раз потоком переименовать для удобства.
По-моему, вполне программерская задача. :)
один вопрос: а как вы переименовывали четные файлы?
один вопрос: а как вы переименовывали четные файлы?
Это просто. Нечётные файлы имеют номера 1..64, чётные - 65..130. Нечётные переименовал по маске ####, а чётные - по маске ###, а номера численно те же. В результате WinExplorer упорядочил всё сам. Дальше было делом техники. Задача сводилась к тому, чтобы правильно чередовать нечётные с чётными. Поэтому я просто использовал свойства сортировки WinExplorer.
Это просто. Нечётные файлы имеют номера 1..64, чётные - 65..130. Нечётные переименовал по маске ####, а чётные - по маске ###, а номера численно те же. В результате WinExplorer упорядочил всё сам. Дальше было делом техники. Задача сводилась к тому, чтобы правильно чередовать нечётные с чётными. Поэтому я просто использовал свойства сортировки WinExplorer.
честно говоря я все таки не понимаю. #### -- это маска которая задает нечетные числа ? или как? или вы просто сначала вручную выделили все нечетные-переименовали их по маске, а потом точно так же поступили с четными?
если это так тогда это не есть решение задачи в полном смысле этого слова
честно говоря я все таки не понимаю. #### -- это маска которая задает нечетные числа ? или как? или вы просто сначала вручную выделили все нечетные-переименовали их по маске, а потом точно так же поступили с четными?
Нет, это не так.
1. Включаем IrfanView. В нём есть инструмент пакетного переименования. Этот инструмент переименовывает по порядку, в котором файлы лежат в списке. Задача - автоматизировать упорядочивание списка.
2. Переименовываем нечётные файлы так, чтобы трёхсимвольные имена превратились в четырёхсимвольные вида 0001.jpg, 0002.jpg и т.д. Это делается потому, что по дефолту все имена состояли из четырёх символов.
3. Переименовываем чётные файлы от вида 065.jpg, 066.jpg...130.jpg к виду 001.jpg, 002.jpg...065.jpg
4. Windows Explorer делает Sort by Name, в результате чего файлы встают в правильном порядке.
5. Для удобства переименовываем всю ораву файлов по какой-нибудь удобной маске, чтобы потом все просмотровщики не парились.
Маска переименования задаёт количество цифр в имени при помощи знака #. Например, маска #### даёт имя длиной 4 цифры.
Если кто не юзал IrfanView, поясню на примере MSDOS.
Команда
В результате прибавится префикс New. IView делает примерно по этому же принципу.
один вопрос: а как вы переименовывали четные файлы?
В аттаче картинка, там всё видно воочию.
Нет, это не так.
1. Включаем IrfanView. В нём есть инструмент пакетного переименования. Этот инструмент переименовывает по порядку, в котором файлы лежат в списке. Задача - автоматизировать упорядочивание списка.
2. Переименовываем нечётные файлы так, чтобы трёхсимвольные имена превратились в четырёхсимвольные вида 0001.jpg, 0002.jpg и т.д. Это делается потому, что по дефолту все имена состояли из четырёх символов.
3. Переименовываем чётные файлы от вида 065.jpg, 066.jpg...130.jpg к виду 001.jpg, 002.jpg...065.jpg
4. Windows Explorer делает Sort by Name, в результате чего файлы встают в правильном порядке.
5. Для удобства переименовываем всю ораву файлов по какой-нибудь удобной маске, чтобы потом все просмотровщики не парились.
Маска переименования задаёт количество цифр в имени при помощи знака #. Например, маска #### даёт имя длиной 4 цифры.
Если кто не юзал IrfanView, поясню на примере MSDOS.
Команда
В результате прибавится префикс New. IView делает примерно по этому же принципу.
спасибо за картинку но она ничего не обясняет и не показывает ибо я прекрасно понимаю что если файлы попереименовать таким образом то эксплорер их отсортирует
но я не о том. вопрос мой вот вчем: как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ? главное что меня волнует -- нужно ли для этого вручную выделять все нечетные файлы ?
Условия чтото пипа
for (i:=0;i<64;i:=i+1)
{
rename ((i+1).jpg->(1+(i*2)).jpg);
rename ((i+65).jpg->(2+(i*2)).jpg);
}
Вот и все проблеми:angel:
Р.С. Здесь написана схематика ток что не придирайтесь к синтаксису, лутше идею возьмите
вопрос мой вот вчем: как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ?
Виноват, не уточнил сразу. Переснималась книга. Страницы книги пронумерованы, номера на картинке видно видно. Кроме прочего, я и так знал, что первые 64 кадра - ВСЕ нечётные, а с 65 до 130 - ВСЕ чётные. И, чтобы не таскать в список файлы в последовательности 1, 65, 2, 66, 3, 67.. n, 64+n, я просто переименовал их в пакетном режиме, чтобы Эксплорер отсортировал их так, как показано на картинке.
Просто файлы должны читаться просмотровщиком в том же порядке, что и страницы реальной книги человеком.
Я сейчас подумал, что при помощи дополительной папки можно было бы сделать всё только средствами командной строки. Дополнительная папка нужна, поскольку я плохо знаком с тонкостями синтаксиса команды ren.
Я вообще не понимаю, а не проще написать прожку которая это все делала в автоматическом режиме.
Можно, однако не очень логично. Я с этого и начал, а потом решил, что целесообразнее решить имеющимися средствами. Прога-то одноразовая, так на кой она вообще нужна?
Интересно, что на работе меня тоже товарищи укоряли за отказ от написания проги. :)
вынужден констатировать что вы так и не ответили на мой вопрос () поэтому попоршу вас сделать еще одну попытку
Програмка пишется за 16 минут (это вмести с тестами и создаванием файлов (блин это было самое трудное)). Лично проверял 8) . Только что :!!!: .
Так что напиши прогу и все дела, а то флудиш тут по черному :devil: , и от серъозных дел отвлекаеш:!!!:
Р.С. Слушай больше друзей:!!!:
С уважением Юрий.
как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ? главное что меня волнует -- нужно ли для этого вручную выделять все нечетные файлы ?
0. В Irfan View реализован описанный в одном из постов метод переименования. Для понятности лучше всего взять IrfanView здесь, и протестировать.
1. Вручную надо сделать два выделения. LClick по 1-му, Shift+LClick по 64-му. Потом перетаскиваем в список ринеймера, дальше он всё делает сам. Аналогичое действие для файлов с 65 по 130. Эти действия есть технология работы с ринеймером просмотровщика. Это такой же неизбежный ручной труд, как при наборе текста.
2. Вручную выделять все нечётные файлы надо, но это делается методом из п.1, поскольку они все стоят друг за другом. А кликать по каждому не нужно.
3. К тому, что надо, я привожу последовательность файлов при помощи средств имеющегося инструмента. По сути, задача сведена к следующему: переименовать так, чтобы ничего не сортировать руками. Мне это удалось - вместо меня сортировал Эксплорер. Вот и всё.
0. В Irfan View реализован описанный в одном из постов метод переименования. Для понятности лучше всего взять IrfanView здесь, и протестировать.
1. Вручную надо сделать два выделения. LClick по 1-му, Shift+LClick по 64-му. Потом перетаскиваем в список ринеймера, дальше он всё делает сам. Аналогичое действие для файлов с 65 по 130. Эти действия есть технология работы с ринеймером просмотровщика. Это такой же неизбежный ручной труд, как при наборе текста.
2. Вручную выделять все нечётные файлы надо, но это делается методом из п.1, поскольку они все стоят друг за другом. А кликать по каждому не нужно.
3. К тому, что надо, я привожу последовательность файлов при помощи средств имеющегося инструмента. По сути, задача сведена к следующему: переименовать так, чтобы ничего не сортировать руками. Мне это удалось - вместо меня сортировал Эксплорер. Вот и всё.
вот это то что я и хотел узнать. все таки в данном методе слишком много ручной работы. попробуйте таким методом обработать 1000 файлов!
я предложил следующее усовершенствование:
for %i in (2,4,6,8,0) do copy *%i.* folder1
-- четные
for %i in (1,3,5,7,9) do copy *%i.* folder2
-- нечетные
а потом подключить irfanview
В Тотал Коммандере есть инструмент (групповое перименование) - зачем велосипед выдумавать?
да знают все про тотал, но переименовывает он только выделенные файлы -- спрашиваецца как их выделить если их дофига ?
да знают все про тотал, но переименовывает он только выделенные файлы -- спрашиваецца как их выделить если их дофига ?
alt - F7
*.jpg
файлы на панель
alt - F7
*.jpg
файлы на панель
хорошо ! мне даже понравилась идея
только это то же самое что и "+" --> "*.jpg"
а как выделить только файлы с четными номерами ?
хорошо ! мне даже понравилась идея
только это то же самое что и "+" --> "*.jpg"
а как выделить только файлы с четными номерами ?
Задача стояла переименовать, а не выделить!
alt - F7
*.jpg
файлы на панель
-- не подходит, или вы можете предложить маску с помощью которой можно выделить четные/нечетные номера?
а как выделить только файлы с четными номерами?
Я же говорил когда-то, что первая половина массива - все чётные, вторая - все нечётные. Там что ТоталКоммандер, что вьюер, что чёрт лысый - всё едино. А выделять половину хоть из 130, хоть из 1000 файлов по любому надо руками. Или самописной программой. А руками 500 файлов выделить ничуть не сложнее, чем 65. LClick -> Shift+LClick. И всё.
Просто у меня нет Total Commander.
Я же говорил когда-то, что первая половина массива - все чётные, вторая - все нечётные. Там что ТоталКоммандер, что вьюер, что чёрт лысый - всё едино. А выделять половину хоть из 130, хоть из 1000 файлов по любому надо руками. Или самописной программой. А руками 500 файлов выделить ничуть не сложнее, чем 65. LClick -> Shift+LClick. И всё.
Просто у меня нет Total Commander.
короче я еще раз повторю:
for %i in (1,3,5,7,9) do ren *%i.* *%i_.*
Alt + F7
*_.*
Ctrl+T
а выделять вручную 500 даже с помощью LClick etc. -- не оченьто удобно
а тотал надо иметь )))
короче я еще раз повторю:
for %i in (1,3,5,7,9) do ren *%i.* *%i_.*
Alt + F7
*_.*
Ctrl+T
а выделять вручную 500 даже с помощью LClick etc. -- не оченьто удобно
а тотал надо иметь )))
Чтобы выделить любое кол-во файлов достаточно кликнуть ДВА раза, при этом удерживая клавишу Shift.
Чтобы выделить любое кол-во файлов достаточно кликнуть ДВА раза, при этом удерживая клавишу Shift.
да только если файлов дофига придется еще и скролить долго и упорно
и еще один момент: хорошо когда то что нужно выделить идет по порядку а если нет ?
да только если файлов дофига придется еще и скролить долго и упорно
и еще один момент: хорошо когда то что нужно выделить идет по порядку а если нет ?
А тогда интересно как ты в цикле будешь перебирать эти файлы? (1, 10, 11, 45,...)
А тогда интересно как ты в цикле будешь перебирать эти файлы? (1, 10, 11, 45,...)
если есть закономерность -- тогда элементарно
если нет -- конечно написание скрипта становится не такой элементарной задачей но тем не менее вручную их выделять -- гиблое дело
если есть закономерность -- тогда элементарно
если нет -- конечно написание скрипта становится не такой элементарной задачей но тем не менее вручную их выделять -- гиблое дело
Вообще то про закономерность было сказано сразу. Зачем изобретать что то одноразовое, если для этого можно использовать стандартные средства