Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как вывести значение переменной в знаках %% в файл. (http://forum.oszone.net/showthread.php?t=253373)

AFone 07-02-2013 03:57 2084196

Как вывести значение переменной в знаках %% в файл.
 
Имеется транслит:
Код:

@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 07-02-2013 07:22 2084247

Цитата:

Цитата AFone
if not exist %1 goto 1 »

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

Код:

@echo off
setlocal enabledelayedexpansion

set "w=тест"
set "w=!w:т=%%t%%!"
set "w=!w:е=%%e%%!"
set "w=!w:с=%%s%%!"

echo %w%

Так подойдет?

zion87 07-02-2013 22:02 2084860

Может так?
Код:

@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!!!

AFone 07-02-2013 23:00 2084905

Большое спасибо Вам всем!

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" на букву "А" . Подскажите люди добрые ...

Iska 23-02-2013 22:16 2097547

Цитата:

Цитата oleggyunter
Задача усложняется . »

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


Время: 18:49.

Время: 18:49.
© OSzone.net 2001-