Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как батником переименовать файлы в транслит? (http://forum.oszone.net/showthread.php?t=268820)

Wrongbee 26-09-2013 14:03 2224343

Как батником переименовать файлы в транслит?
 
Друзья, привет!
Помогите, плиз... Задача двухэтапная. Первая (более важная). Ограничения папки 20 символов на имя плюс расширение. Как в батнике сделать так, чтобы в имени файла были отброшены символы сверх 19 символов (переименование) и двадцтым символов поставлен восклизательный знак. И вторая (менее важная, но для меня более сложная). Заменить в имени кирилические символы на их транслит. В крайнем случае на восклицательный знак. Пока смог собрать с помощью форума батник, который проверяет размер файла, и если он более 50 мегов, переносит файл в папку БРАК.
Спасибо!


Код:

mdow @ /HID
for /f "delims=" %%i in ('dir "\\STORAGE\Папка с файлами" /b /s /a-d') do if %%~zi gtr 50000000 move  "%%i" \\STORAGE\Volume_2\BRAK


Iska 26-09-2013 14:29 2224362

Можно, но лучше использовать WSH. Вас устроит?

Wrongbee 26-09-2013 14:43 2224374

Батник уже прописан в планировщик, хочется просто дописать в него необходимое... Хотя бы урезание имени до 19 символов и вставку 20-м восклицательного знака... Сейчас штудирую форум (дошел до 245 страницы :). Спасибо!

Iska 26-09-2013 14:56 2224381

Цитата:

Цитата Wrongbee
Батник уже »

Приведите его код.

Wrongbee 26-09-2013 15:05 2224387

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

Iska 26-09-2013 16:26 2224423

Wrongbee, использование восклицательного знака в имени — не лучшая идея для пакетных файлов. Допустимо ли использование иного символа? Символ нужно добавлять всегда или только для имён, превышающих 20 знаков?

И опишите задачу полностью.

Wrongbee 26-09-2013 16:45 2224427

Восклицательный знак - не принципиально... Задача в следующем... Есть несколько сетевых папок (и на сервере WIN 2003, и на NAS, и на Mac), в которые складываются файлы небольшого размера (просмотровые pdf). Требования пользователей (которые туда пишут) к файлам:
1. не более 50 мегабайт (иначе перенос в отдельную папку с именем "Брак"
2. Не использовать кириллицу в именах файлов, иначе замена русских букв на в идеале транслит, но пойдет и, допустим, на единичку
3. Имя файла не более 20 символов, иначе лишние символы удаляются, а в конце имени ставится какой-нибудь символ (маркер, чтобы было видно, что произошло переименование). Действительно, восклицательный знак плохая затея - пусть будет единичка

Пункт 2 необязательно

Wrongbee 26-09-2013 18:59 2224500

Ура, спасибо... Добавил правила транслита и ВСЕ пашет. СПАСИБО!

Wrongbee 27-09-2013 10:55 2224754

Теперь хочу изучить batch поподробнее, доработать и выложить финальный вариант. Доработка в следующем... Если имена файлов ПОСЛЕ переименования дожны стать одинаковыми, то переименовывается только один файл. Например, ставим ограничение 5 символов имени. Есть файлы с именами 11111111.jpg и 1111112.jpg, то первый становится 11111!.jpg, а 1111112.jpg остается прежним, так как после переименования совпадут имена. Еще раз спасибо за помощь


Время: 20:12.

Время: 20:12.
© OSzone.net 2001-