Дата публикации:

Транслитерация через bat.


Транслитерация через bat.

Проблема возникает из-за того, что в строке SET word=%word:о=o% вы заменяете все символы "о" на "o", включая уже замененные символы "г" на "g". Аналогично, в строке SET word=%word:н=n% вы заменяете все символы "н" на "n", включая уже замененные символы "в" на "v".

Чтобы исправить эту проблему, вам нужно изменить порядок замен символов. Вот исправленный код:

@chcp 1251>nul @echo off

if "%*"=="" set /p word=Введи текст: && goto 2 if not exist %1 goto 1

for /f "delims=" %%a in (%1) do set word=%%a & call :2 exit /b

:1 set word=%*

:2 SET word=%word:а=a% SET word=%word:б=b% SET word=%word:в=v% SET word=%word:г=g% SET word=%word:д=d% SET word=%word:е=e% SET word=%word:ё=jo% SET word=%word:ж=zh% SET word=%word:з=z% SET word=%word:и=i% SET word=%word:й=j% SET word=%word:к=k% SET word=%word:л=l% SET word=%word:м=m% SET word=%word:н=nn% SET word=%word:о=o% SET word=%word:п=p% SET word=%word:р=r% SET word=%word:с=s% SET word=%word:т=t% SET word=%word:у=u% SET word=%word:ф=f% SET word=%word:х=h% SET word=%word:ц=ts% SET word=%word:ч=ch% SET word=%word:ш=sh% SET word=%word:щ=sch% SET word=%word:ъ="% SET word=%word:ы=y% SET word=%word:ь=`% SET word=%word:э=e% SET word=%word:ю=ju% SET word=%word:я=ja%

echo %word% ::pause

 

 
Загрузка...