Показать полную графическую версию : [решено] Как батником переименовать файлы в транслит?
Wrongbee
26-09-2013, 14:03
Друзья, привет!
Помогите, плиз... Задача двухэтапная. Первая (более важная). Ограничения папки 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
Можно, но лучше использовать WSH. Вас устроит?
Wrongbee
26-09-2013, 14:43
Батник уже прописан в планировщик, хочется просто дописать в него необходимое... Хотя бы урезание имени до 19 символов и вставку 20-м восклицательного знака... Сейчас штудирую форум (дошел до 245 страницы :). Спасибо!
Батник уже »
Приведите его код.
Wrongbee
26-09-2013, 15:05
Сорри, я немного криво выразился... Есть крошечный батник (код в первом посте), который переносит файлы размером более 50 мегов из основной папки. Сейчас хочется расширить его возможности, добавив переименование.
Wrongbee, использование восклицательного знака в имени — не лучшая идея для пакетных файлов. Допустимо ли использование иного символа? Символ нужно добавлять всегда или только для имён, превышающих 20 знаков?
И опишите задачу полностью.
Wrongbee
26-09-2013, 16:45
Восклицательный знак - не принципиально... Задача в следующем... Есть несколько сетевых папок (и на сервере WIN 2003, и на NAS, и на Mac), в которые складываются файлы небольшого размера (просмотровые pdf). Требования пользователей (которые туда пишут) к файлам:
1. не более 50 мегабайт (иначе перенос в отдельную папку с именем "Брак"
2. Не использовать кириллицу в именах файлов, иначе замена русских букв на в идеале транслит, но пойдет и, допустим, на единичку
3. Имя файла не более 20 символов, иначе лишние символы удаляются, а в конце имени ставится какой-нибудь символ (маркер, чтобы было видно, что произошло переименование). Действительно, восклицательный знак плохая затея - пусть будет единичка
Пункт 2 необязательно
Wrongbee
26-09-2013, 18:59
Ура, спасибо... Добавил правила транслита и ВСЕ пашет. СПАСИБО!
Wrongbee
27-09-2013, 10:55
Теперь хочу изучить batch поподробнее, доработать и выложить финальный вариант. Доработка в следующем... Если имена файлов ПОСЛЕ переименования дожны стать одинаковыми, то переименовывается только один файл. Например, ставим ограничение 5 символов имени. Есть файлы с именами 11111111.jpg и 1111112.jpg, то первый становится 11111!.jpg, а 1111112.jpg остается прежним, так как после переименования совпадут имена. Еще раз спасибо за помощь
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.