Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

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

Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Имеется транслит:
Код: Выделить весь код
@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%
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:57, 07-02-2013

 

Ветеран


Сообщения: 1749
Благодарности: 963

Профиль | Цитировать


Цитата 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%
Так подойдет?
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:22, 07-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


Может так?
Код: Выделить весь код
@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!!!

Последний раз редактировалось zion87, 07-02-2013 в 22:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:02, 07-02-2013 | #3


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось AFone, 07-02-2013 в 23:28.


Отправлено: 23:00, 07-02-2013 | #4


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:23, 23-02-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата oleggyunter:
Задача усложняется . »
oleggyunter, лучше заведите новую тему, указав что, на что, где и, главное — зачем менять.

Отправлено: 22:16, 23-02-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести значение переменной в знаках %% в файл.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? Dark Ange1 Скриптовые языки администрирования Windows 28 22-06-2022 14:37
[решено] FPDF класс php для генерации pdf документов, как вывести значение в самом низу стр? zvezda_t Вебмастеру 4 22-04-2010 10:56
CMD/BAT - [решено] Как получить значение "вложенной" переменной. volk1234 Скриптовые языки администрирования Windows 4 03-10-2009 15:51
[решено] как вывести список пользователей в файл klesk Скриптовые языки администрирования Windows 1 11-05-2009 09:24
Как извлечь значение из переменной масива, которое не отображалось бы на экране dima1981 Вебмастеру 8 11-11-2008 11:54




 
Переход