Интерпретатор CMD - вывод переменных со спецсимволами на экран и в файл

Известная, но слабоосвещенная тема - обработка в коммандном интерпретаторе CMD данных со спецсимволами.
В большинстве ситуаций она вполне решаема...
Плюс к этому периодически возникают задачи вывода в файл без перевода строки.
Несколько лет назад (на ру-борде) я выкладывал семпловый код, который достаточно подробно иллюстрирует примеры возможной работы:

@ECHO OFF&CLS
(ECHO Обработка переменных со спецсимволами "(", ")","&","|",">","<")
(ECHO SET "AAA=сообщение()&|<>команда")
SET "AAA=сообщение()&|<>команда"

(ECHO Вывод на экран с обрамляющими двойными кавычками)
(ECHO ^(ECHO "%%AAA%%"^))
(ECHO "%AAA%")

(ECHO Перенаправление значения переменной в файл file.txt с переводом строки то есть с CR/LF)
(ECHO с заменой существующего file.txt)
(ECHO SET /p"=%%AAA%%"^<nul 1^>file.txt^&ECHO.^>^>file.txt)
SET /p"=%AAA%"<nul 1>file.txt&ECHO.>>file.txt

(ECHO Перенаправление значения переменной в файл file.txt с переводом строки то есть с CR/LF)
(ECHO дописыванием в существующий file.txt)
(ECHO SET /p"=%%AAA%%"^<nul 1^>^>file.txt^&ECHO. 1^>^>file.txt)
SET /p"=%AAA%"<nul 1>>file.txt&ECHO. 1>>file.txt

(ECHO Перенаправление значения переменной в файл file1.txt без перевода строки то есть без CR/LF)
(ECHO с заменой существующего file1.txt)
(ECHO SET /p"=%%AAA%%"^<nul 1^>file1.txt)
SET /p"=%AAA%"<nul 1>file1.txt

(ECHO Перенаправление значения переменной в файл file1.txt без перевода строки то есть без CR/LF)
(ECHO с дописыванием в существующий file1.txt)
(ECHO SET /p"=%%AAA%%"^<nul 1^>^>file1.txt)
SET /p"=%AAA%"<nul 1>>file1.txt

(ECHO Вывод значения переменной на экран с переводом строки то есть с CR/LF)
(ECHO SET /p"=%%AAA%%"^<nul^&ECHO.)
(ECHO ^(ECHO Вторая строка^))
SET /p"=%AAA%"<nul&ECHO.
(ECHO Вторая строка)

(ECHO Вывод значения переменной на экран без перевода строки то есть с CR/LF)
(ECHO SET /p"=%%AAA%%"^<nul)
(ECHO ^(ECHO Вторая строка^))
SET /p"=%AAA%"<nul
(ECHO Вторая строка)

(ECHO Метод предварительной подготовки: )
(ECHO SET "AAA=%%AAA:&=^&%%")
(ECHO SET "AAA=%%AAA:|=^|%%")
(ECHO SET "AAA=%%AAA:<=^<%%")
(ECHO SET "AAA=%%AAA:>=^>%%")
(ECHO SET "AAA=%%AAA:(=^(%%")
(ECHO SET "AAA=%%AAA:)=^)%%")
SET "AAA=%AAA:&=^&%"
SET "AAA=%AAA:|=^|%"
SET "AAA=%AAA:<=^<%"
SET "AAA=%AAA:>=^>%"
SET "AAA=%AAA:(=^(%"
SET "AAA=%AAA:)=^)%"
(ECHO ^(ECHO %%AAA%%^))
(ECHO %AAA%)
PAUSE

Кодировка приведенного скрипта CP866.
Для ознакомления рекомендуется выполнить ;)
Само-собой в случае вопросов постараюсь ответить...

Комментарии

Как отписаться от вашей рассылки?

Аватар пользователя yurkesha

В левом нижнем углу поле для ввода мыла. При этом поставить галочку на "отписаться" и нажать кнопку "добавить"

---
упс..

Аватар пользователя yurkesha

Сорри конечно - я на выходных поправил сотни страниц и при этом отключить рассылку забыл :(

---
упс..

Страницы

Похожие материалы по этой теме на сайте

Содержимое
Скрипты для CMD

Скрипты выполняемые интерпретатором CMD.EXE - стандартной консольной оболочкой для Win2000/WinXP/Vista/Seven/Win8/Win2000 Server/Win2003/Win2008.

Страховое копирование по списку

Относительно простой вариант резервного копирования по списку файлов/папок с учетом типа резервной копии и количества хранимых копий по типам. Классические типы: дневная-недельная-месячная-годовая копии. Кодировка скрипта CP866....

Преобразование файлов 1CClientBankExchange в табличную форму

Лично мне периодически приходилось сталкиваться с обработкой данных не в табличной форме, а в "именованном формате" то есть когда каждый параметр пишется на отдельной строке в виде Параметр=Значение параметра причем файл...

Чтение данных из реестра в переменную окружения

Продвинутый кросплатформенный модуль для встраивания в скрипты, позволяющий в удобной форме получать данные из реестра для дальнейшего использования(как всегда - кодировка скрипта CP866):

Перевод столбца в строку

Преобразование столбца в строку с заданными разделителями и обрамлением. Кодировка скрипта CP866.
Символ двойной кавычки при этом не удастся использовать как разделитель или обрамление.

Новости российского отделения корпорации Майкрософт

Федеральная служба по техническому и экспортному контролю (ФСТЭК) вручила сертификаты для операционных систем Windows 8 и Windows Server 2012.

Вот полный список сертифицированных ОС на сегодняшний день:

Настройка TS Easy Print на сервере терминалов Windows Server 2012 R2

Технология TS Easy Print является альтернативой стандартной службе печати, появилась впервые в Windows Server 2008R2.

Перенос данных пользователя

Наткнулся на простейшую статью по поводу переноса данных. Сам постоянно использую, но времени хоть в двух словах описать не было.