Страница 18 из 52

групповое переименование, скрипт

Добавлено: Чт май 09, 2013 19:38
eug.shap3
Уважаемые формучане!

Необходимо переименовать файлы (сканы страниц) чтоб все было по порядку.

файлы расположены так, что начинаются, например с 2й страницы, семь штук подряд идут через одну, например, 2 - 4 -6, на восьмой идет скачок +16, например, было 32, стало 48, а потом опять семь подряд идут +2.. и все повоторяется.

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

Спасибо

Добавлено спустя 3 минуты:

Простите за ошибки, быстро печатал.
:oops:

Добавлено: Чт май 09, 2013 20:48
Tol!k
сколько всего файлов?

Добавлено: Чт май 09, 2013 21:13
eug.shap3
Tol!k писал(а):сколько всего файлов?
более 4000, вручную долго...

Добавлено: Чт май 09, 2013 21:54
CaptainFlint
eug.shap3
А стандатный, описанный в справке [C2+2] чем не подходит?

Добавлено: Чт май 09, 2013 22:05
eug.shap3
CaptainFlint писал(а):eug.shap3
А стандатный, описанный в справке [C2+2] чем не подходит?
[C2+2] переномерует 7 файлов, номерация которых идет по порядку, напр. 2-4-8 и т.д, однако для переименования следующей части, после "скачка", это не подходит, разве что я не знаю дополнительных команд.

Указывать вручную 4000/7=571 "папок", мышкой выделяя 7 подряд - можно, но отбирает много времени + есть риск механической ошибки.

С том-то и вопрос, что нужно настроить как бы два фильтра, обычные 2-4-6, и дополнительный, типа, "начинаем с 2, а после переименования 7 файлов начинаем с +16-ти, например, 18 (2+16).

Пардон за оффтопик, я вычитал в сети, что это можно бы решить путем создания java (или другого) скрипта в других программах (упоминают Advanced Renamer), но я не программист, и комманд java не знаю.

Может, возможно создать некий скрипт для TC ?

Добавлено: Чт май 09, 2013 22:24
Tol!k

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
if "%~2"=="" goto :eof

set "pre=page_"
set "ext=.bmp"

set /a strt=100000+%~1
set /a end=100000+%~2
set list="%strt:~-5%_%end:~-5%.lst"
cd. >%list%

set /a cnt=%strt%
:loop
for %%a in (2 2 2 2 2 2 2 16) do (
	set /a cnt=cnt+%%a
	if !cnt! gtr %end% goto :eof
	echo %pre%!cnt:~-5!%ext%
) >>%list%
goto :loop

Сохрани как .cmd
Запусти с параметрами
0 4000
и
-1 4000
Получится 2 списка
затем Инструмент группового переименования → Загрузить имена из файла

Добавлено: Чт май 09, 2013 23:10
CaptainFlint
eug.shap3 писал(а):[C2+2] переномерует 7 файлов, номерация которых идет по порядку, напр. 2-4-8 и т.д, однако для переименования следующей части, после "скачка", это не подходит, разве что я не знаю дополнительных команд.
Понятно. Я сначала понял так, что, наоборот, этот скачок уже есть и от него нужно избавиться, сделав для всех файлов единую сквозную нумерацию.
Да, в таком случае стандартный инструмент не подойдёт, таких сложных команд в нём нет.

Добавлено: Чт май 09, 2013 23:16
eug.shap3
Tol!k писал(а):
[/code]
сохрани как .cmd
запусти с параметрами
0 4000
и
-1 4000
Ух ты, не ожидал!

А как правильно запускать полученный .cmd?

В коммандной строке TC, в папке с файлами? Или иначе?

Спасибо!

Добавлено: Чт май 09, 2013 23:31
Tol!k
А как правильно
Как угодно. Получится 2 списка
затем
Инструмент группового переименования > Загрузить имена из файла

Добавлено: Пт май 10, 2013 00:12
eug.shap3
THANK YOU VERY MUCH :D :D :D

Добавлено: Вт июн 11, 2013 13:41
RuMaS
Flasher
Прошу прощения, что я делаю неправильно? Во втором диалоговом окне, чтобы удалить искомый текст, вводимый в первом, надо ставить "*"?
Пример: файл 111.decrypted00.doc надо сделать 111.doc
В первом окне ввожу .decrypted00, во втором "*".
Выскакивает ошибка:

Код: Выделить всё

---------------------------
Windows Script Host
---------------------------
Сценарий:	C:\Program Files (x86)\Total Commander\Utilites\rename.vbs
Строка:	25
Символ:	3
Ошибка:	Недопустимый вызов или аргумент процедуры
Код:	800A0005
Источник: 	Ошибка выполнения Microsoft VBScript

---------------------------
ОК   
---------------------------
Извините, если что-то банальное - никогда со скриптами в ТС не работал, а очень надо.

Добавлено: Вт июн 11, 2013 13:54
Flasher
Памятка новичку по скриптам (Читать обязательно!)
> Если скрипт не работает! > 3)

Добавлено: Вт июн 11, 2013 18:25
RuMaS
Flasher
Прошу прощения:
параметр равен 1

Добавлено: Вт июн 11, 2013 20:02
Flasher

Код: Выделить всё

' Условие: путь запуска - пустой
:?:

Понял проблему. Исправлено.

Добавлено: Ср июн 12, 2013 13:07
RuMaS
Flasher
Спасибо огромное, всё получилось. Хотя в конце вылезла ошибка:

Код: Выделить всё

---------------------------
Windows Script Host
---------------------------
Сценарий:	C:\Program Files (x86)\Total Commander\Utilites\rename.vbs
Строка:	48
Символ:	3
Ошибка:	Разрешение отклонено
Код:	800A0046
Источник: 	Ошибка выполнения Microsoft VBScript

---------------------------
ОК   
---------------------------
[mod="Avada"]Оформление этого и предыдущих постов приведено в соответствие с правилами форума (убран оверквотинг), также нормально оформлен код.[/mod]