CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Ответить
Аватара пользователя
AFone

CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Сообщение AFone »

Имеется транслит:



Код:

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

@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:н=n% 
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%
@chcp 1251>nul
echo %word%>>name.txt

Нужно чтобы каждая буква транслита заключалась в знаки % и выводилась в файл.

Например:

Вводимый иекст на русском: Привет

После выполнения скрипта и вывода в файл: Privet

Желаемый результат %P%%r%%i%%v%%e%%t%
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Сообщение Foreigner »

Цитата AFone:



if not exist %1 goto 1
CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.




Это проверка наличия файла, или что?





Код:

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

@echo off
setlocal enabledelayedexpansion
set "w=тест"
set "w=!w:т=%%t%%!"
set "w=!w:е=%%e%%!"
set "w=!w:с=%%s%%!"
echo %w%

Так подойдет?
Аватара пользователя
zion87

Re: CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Сообщение zion87 »

Может так?



Код:

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

@Echo Off
SetLocal EnableDelayedExpansion
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
Set /p Data=Введи текст:
Set Result=
Set n=0
:_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 "$=!$:%%%Char%%%!"
If %n% NEQ 0 Set $=%$:~2%
Set /a n+=1
Set Result=%Result%%$%
Set Data=%Data: =_%
Set Data=%Data:~1%
If Defined Data GoTo _loop 
Echo %Result% >>name.txt

Обязательное сохранение с кодировкой 866!!!
Аватара пользователя
oleggyunter

Re: CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Сообщение oleggyunter »

Задача усложняется . В моём случае участок строки выглядит так : ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;1=20=D0=90=D1=81=D0=BA=D0=B0=D1=80=D0=B8=D0=BA Это слово "Аскарик" . пробую заменить символы , содержащие знак "=" , экранирование не помогает . Необходимо заменить "=D0=90" на букву "А" . Подскажите люди добрые ...
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Сообщение Iska »

Цитата oleggyunter:



Задача усложняется .
CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.




oleggyunter, лучше заведите новую тему, указав что, на что, где и, главное — зачем менять.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»