 |
|
Как вывести значение переменной в знаках %% в файл.
Имеется транслит:
Код:
@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%
|
Это проверка наличия файла, или что?
Код:
@echo off
setlocal enabledelayedexpansion
set "w=тест"
set "w=!w:т=%%t%%!"
set "w=!w:е=%%e%%!"
set "w=!w:с=%%s%%!"
echo %w%
Так подойдет?
|
Может так?
Код:
@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 |
23-02-2013 20:23 2097478 |
Задача усложняется . В моём случае участок строки выглядит так : ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;1=20=D0=90=D1=81=D0=BA=D0=B0=D1=80=D0=B8=D0=BA Это слово "Аскарик" . пробую заменить символы , содержащие знак "=" , экранирование не помогает . Необходимо заменить "=D0=90" на букву "А" . Подскажите люди добрые ...
|
oleggyunter, лучше заведите новую тему, указав что, на что, где и, главное — зачем менять.
|
Время: 18:49.
© OSzone.net 2001-