|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена в имени файлов кириллицы на латиницу |
|
CMD/BAT - [решено] Замена в имени файлов кириллицы на латиницу
|
Новый участник Сообщения: 11 |
Профиль | Отправить PM | Цитировать Подскажите, как можно заменить русские буквы на латинские во всех файлах данной папки?
Я имею в виду похожие русские и латинские буквы, например: "а" (рус) на "a" латинскую и т.д. Имена файлов различные, расширения тоже. Необходимо для последующей заливки на сервер, а из-за кириллицы в именах файлов возникают проблемы... |
|
Отправлено: 18:10, 22-01-2013 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать zion87, у меня так:
Может кодировка при копировании с форума бьется? Вот файл Какая у Вас система, русская? И что выдает команда ChCp в консоли? |
Последний раз редактировалось gora, 24-01-2013 в 21:19. Отправлено: 12:20, 23-01-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 263
|
Профиль | Отправить PM | Цитировать Да с этим файлом все на УРА!!!
|
Отправлено: 13:45, 23-01-2013 | #12 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off :: Кодировка файла Кириллица DOS (866) SetLocal EnableDelayedExpansion :: Путь к обрабатываемой папке Set Folder=e:\Temp\1 :: Список замен Set preset=а_a б_b в_v г_g д_d е_e ё_yo ж_zh з_z и_i й_i к_k л_l м_m н_n о_o п_p р_r с_s т_t у_u ф_f х_kh ц_c ч_ch ш_sh щ_sh ъ_. ы_y ь_. э_e ю_yu я_ya А_A Б_B В_V Г_G Д_D Е_E Ё_Yo Ж_Zh З_Z И_I Й_I К_K Л_L М_M Н_N О_O П_P Р_R С_S Т_T У_U Ф_F Х_Kh Ц_C Ч_Ch Ш_Sh Щ_Sh Ъ_. Ы_Y Ь_. Э_E Ю_Yu Я_Ya :: После проверки слово ECHO удалить For /F "tokens=* delims=" %%A In ('Dir /S /B /A:-D "%folder%"') Do ( Call :_translit "%%~nA" Echo Ren "%%A" "!Result!%%~xA" ) Pause Exit :_translit Set Data=%~1 Set Data=%Data: =_% Set Result= :_loop Set Char=%Data:~,1% For %%I In (%preset%) Do For /F "tokens=1,2 delims=_" %%A In ("%%I") Do If %Char%==%%A Set Char=%%B Set Result=%Result%%Char% Set Data=%Data:~1% If Defined Data GoTo _loop GoTo :EOF |
Последний раз редактировалось gora, 25-01-2013 в 08:13. Отправлено: 16:01, 23-01-2013 | #13 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Плагин для Total Commander http://wincmd.ru/search.php?s=Translit_wdx
|
Отправлено: 17:31, 23-01-2013 | #14 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата gora:
2 - если в предпоследнем If использовать при сравнении кавычки, то отпадает необходимость замены пробелов на символ подчеркивания. @Echo Off :: Кодировка файла Кириллица DOS (866) SetLocal EnableDelayedExpansion :: Путь к обрабатываемой папке Set Folder=e:\Temp\1 :: Список замен Set preset=^ а_a б_b в_v г_g д_d е_e ё_yo ж_zh з_z и_i й_i к_k л_l м_m н_n о_o п_p р_r с_s т_t у_u ф_f х_kh ц_c ч_ch ш_sh щ_sh ъ_. ы_y ь_. э_e ю_yu я_ya^ А_A Б_B В_V Г_G Д_D Е_E Ё_Yo Ж_Zh З_Z И_I Й_I К_K Л_L М_M Н_N О_O П_P Р_R С_S Т_T У_U Ф_F Х_Kh Ц_C Ч_Ch Ш_Sh Щ_Sh Ъ_. Ы_Y Ь_. Э_E Ю_Yu Я_Ya :: После проверки слово ECHO удалить For /F "tokens=* delims=" %%A In ('Dir /S /B /A:-D "%folder%"') Do ( Call :_translit "%%~nA" Echo Ren "%%A" "!Result!%%~xA" ) Pause Exit :_translit Set Data=%~1 Set Result= :_loop Set Char=%Data:~,1% For %%I In (%preset%) Do For /F "tokens=1,2 delims=_" %%A In ("%%I") Do If "%Char%"=="%%A" Set Char=%%B Set Result=%Result%%Char% Set Data=%Data:~1% If Defined Data GoTo _loop GoTo :EOF |
|
Последний раз редактировалось nsky, 24-01-2013 в 18:15. Причина: Теги? Отправлено: 18:04, 24-01-2013 | #15 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать nsky
1 Спасибо, поправил 2 Учитывая, что: Цитата VedunO:
3 http://forum.oszone.net/thread-206940.html |
|
Отправлено: 21:32, 24-01-2013 | #16 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать gora,
Ему решать... А как насчет этого: Цитата nsky:
|
|
Отправлено: 10:49, 25-01-2013 | #17 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата nsky:
Цитата gora:
|
||
Отправлено: 10:50, 25-01-2013 | #18 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 19:58, 25-01-2013 | #19 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать небольшой апдейт для универсальности ))
просьба обновить по указанным ссылкам
|
Отправлено: 00:40, 20-01-2019 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Копирование имени файлов в 1 файл | Kalyai | Скриптовые языки администрирования Windows | 0 | 25-07-2012 12:44 | |
Интерфейс - как переименовать папку с кирилицы на латиницу или перенести все файлы? | kulgovd | Microsoft Windows 7 | 1 | 04-06-2012 02:33 | |
CMD/BAT - Сравнение файлов по имени | stasy9110 | Скриптовые языки администрирования Windows | 1 | 04-12-2011 21:27 | |
CMD/BAT - Удаление старых файлов по имени файлов | Bиктор | Скриптовые языки администрирования Windows | 1 | 19-04-2010 03:37 | |
Пишем JavaScript перекодировки из кириллицы в латиницу | maasja | Вебмастеру | 16 | 08-06-2009 22:10 |
|