- 01.11.2020
- 7 689
- 0
- 6
- 6
- 0
- Содержание статьи
- Описание
- Синтаксис
- Параметры
- Примечания
- Примеры использования
- Справочная информация
- Добавить комментарий
Описание
ECHO — Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.
Синтаксис
echo [{on|off}] [сообщение]
Параметры
Параметр | Описание |
---|---|
{on|off} | Включение или отключения режима отображения на экране информации о работе команд |
сообщение | Задание текста для вывода на экран |
/? | Отображение справки в командной строке |
Примечания
- Команда echo сообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echo сообщение после команды echo off в пакетной программе
- Если используется команда echo off, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите команду echo on
- Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле
- Чтобы вывести на экране пустую строку, введите следующую команду: echo
- Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^< или ^| ). Чтобы вывести символ (^), введите два этих символа подряд (^^)
Примеры использования
Следующий пример представляет собой пакетный файл, выводящий сообщение из трех строк на экран с пустыми строками до и после него:
echo off
echo.
echo Эта пакетная программа
echo форматирует и проверяет
echo новые диски
echo.
Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, введите символ @ перед командой:
@echo off
Оператор if и команду echo можно использовать в одной командной строке: Например:
if exist *.rpt echo Отчет получен.
Справочная информация
Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.
Синтаксис
echo [{on|off}] [сообщение]
Параметры
- {on|off}
- Включение или отключения режима отображения на экране информации о работе команд.
- сообщение
- Задание текста для вывода на экран.
- /?
- Отображение справки в командной строке.
Примечания
- Команда echo сообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echo сообщение после команды echo off в пакетной программе.
- Если используется команда echo off, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите командуecho on.
- Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле.
- Чтобы вывести на экране пустую строку, введите следующую команду:
echo.
- Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^< или ^| ). Чтобы вывести символ (^), введите два этих символа подряд (^^).
Примеры
Следующий пример представляет собой пакетный файл, выводящий сообщение из трех строк на экран с пустыми строками до и после него:
echo off
echo.
echo Эта пакетная программа
echo форматирует и проверяет
echo новые диски
echo.
Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, введите символ @ перед командой:
@echo off
Оператор if и команду echo можно использовать в одной командной строке: Например:
if exist *.rpt echo Отчет получен.
При выводе русских букв необходимо помнить о кодировке. Текст сообщения должен быть в DOS (866) кодировке. Многие текстовые редакторы его поддерживают.
Если необходимо, что бы текст сообщений был в WIN (1251) кодировке и был виден из любого редактора, то можно использовать следующий прием.
chcp 1251 >NUL
set x=Русский текст
chcp 866 >NUL
echo %x%
pause
Такие сообщения для удобства можно выделить в отдельный блок.
chcp 1251 >NUL
set MSG01=Отсутствует исходный файл
set MSG02=Ошибка копирования
set MSG03=Успешное завершение программы
set TIT=Копирование файла
chcp 866 >NUL
Title %TIT%
….
echo %MSG01%
….
echo %MSG02%
….
echo %MSG03%
Если такой блок неудобно располагать в начале файла, то можно образовать из него процедуру, разместить в конце bat файла, а на исполнение вызвать эту процедуру командой call в начале bat файла. Из примера все должно стать понятнее))
….
call :blockmsg
Title %TIT%
….
echo %MSG01%
….
echo %MSG02%
….
echo %MSG03%
….
exit
:blockmsg
chcp 1251 >NUL
set MSG01=Отсутствует исходный файл
set MSG02=Ошибка копирования
set MSG03=Успешное завершение программы
set TIT=Копирование файла
chcp 866 >NUL
exit /b
Если сообщение одиночное, то можно извратиться поступить следующим образом:
chcp 1251 >nul
for /f «delims=» %%A in («Отойдите на безопасное расстояние») do >nul chcp 866& echo.%%A
Introduction
echo
can be used to control and produce output.
Syntax
- ECHO [ON | OFF]
- ECHO message
- ECHO(message
- ECHO(
Parameters
Parameter | Details |
---|---|
ON | OFF | Can either be ON or OFF (case insensitive) |
message | Any string (except ON or OFF when used without ( ) |
echo.
will also display an empty string. However, this is slower thanecho(
asecho.
will search for a file named «echo». Only if this file does not exist will the command work, but this check makes it slower.echo:
will behave just likeecho(
, unlessmessage
looks like a file path, e.g.echo:foo..test.bat
. In this case, the interpreter will seeecho:foo
as a folder name, stripecho:foo..
(because it appears just to enter the directoryecho:foo
then leave it again) then executetest.bat
, which is not the desired behaviour.
Displaying Messages
To display «Some Text», use the command:
echo Some Text
This will output the string Some Text
followed by a new line.
To display the strings On
and Off
(case insensitive) or the empty string, use a (
instead of white-space:
echo(ON
echo(
echo(off
This will output:
ON off
It is also common to use echo.
to output a blank line, but please see the remarks for why this is not the best idea.
To display text without including a CR/LF, use the following command:
<nul set/p=Some Text
This command will attempt to set the variable called the empty string to the user input following a prompt. The nul
file is redirected to the command with <nul
, so the command will give up as soon as it tries to read from it and only the prompt string will be left. Because the user never typed a new line, there is no linefeed.
Echo Setting
The echo setting determines whether command echoing is on or off. This is what a sample program looks like with command echoing on (default):
C:WindowsSystem32>echo Hello, World!
Hello, World!
C:WindowsSystem32>where explorer
C:WindowsSystem32explorer.exe
C:WindowsSystem32>exit
This is what it looks like with echo off:
Hello, World!
C:WindowsSystem32explorer.exe
Getting and Setting
To get (display) the echo setting, use echo
with no parameters:
> echo
ECHO is on.
To set the echo setting, use echo
with on
or off
:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Note that with these examples, the prompt has been represented by >
. When changing the echo setting, the prompt will appear and disappear, but that makes for unclear examples.
Note that it is possible to prevent a command from being echoed even when echo is on, by placing an @
character before the command.
Echo outputs everything literally
Quotes will be output as-is:
echo "Some Text"
"Some Text"
Comment tokens are ignored:
echo Hello World REM this is not a comment because it is being echoed!
Hello World REM this is not a comment because it is being echoed!
However, echo
will still output variables — see Variable Usage — and special characters still take effect:
echo hello && echo world
hello world
Echo output to file
Ways to create a file with the echo command:
echo. > example.bat (creates an empty file called "example.bat")
echo message > example.bat (creates example.bat containing "message")
echo message >> example.bat (adds "message" to a new line in example.bat)
(echo message) >> example.bat (same as above, just another way to write it)
Output to path
A little problem you might run into when doing this:
echo Hello how are you? > C:UsersBen TearzzDesktopexample.bat
(This will NOT make a file on the Desktop, and might show an error message)
But then how do we do it? Well it’s actually extremely simple… When typing a path or file name that has a space included in it’s name, then remember to use «quotes»
echo Hello how are you? > "C:UsersBen TearzzDesktopexample.bat"
(This will make a file on MY Desktop)
But what if you want to make a file that outputs a new file?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Then how do we do this?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
Same goes for other stuff in batch
If you haven’t learned what variables and statements are, then you most likely won’t understand the following: click here to learn about variables | click here to learn about «if» statements
Variables:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
if we don’t want it to output «text» but just plain %example% then write:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
else statements:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
to output the whole line we write:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
If the variable is equal to «Hello» then it will say «True», else it will say «False»
@Echo off
@echo off
prevents the prompt and contents of the batch file from being displayed, so that only the output is visible. The @
makes the output of the echo off
command hidden as well.
Turning echo on inside brackets
In the following example echo on
will take effect after the end of the brackets context is reached:
@echo off
(
echo on
echo ##
)
echo $$
In order to «activate» echo on in a brackets context (including FOR
and IF
commands) you can use FOR /f macro :
@echo off
setlocal
:: echo on macro should followed by the command you want to execute with echo turned on
set "echo_on=echo on&for %%. in (.) do"
(
%echo_on% echo ###
)
Команда echo в командной строке используется для вывода данных на экран консоли или же в файл, и для включения/выключения эхо-отображения команд.
Эхо-отображения – вывод на экран самих команд, а не только результат их выполнения. Так, если мы пропишем в сценарии следующую строку кода:
а потом запустим его через консоль командной строки, то вначале нам выведет сами команды (echo Hello World & dir), а уже потом результат их выполнения. В данном случае команда cmd – echo, выводит строку Hello World, а команда dir (смотрите статью «Утилита DIR«) – содержимое текущего каталога, символ & отвечает за конкатенацию (объединение) обеих команд (смотрите статью «Урок 2 по CMD — операторы командной строки«).
Для простоты запуска сценариев, пропишите в командной строке:
Path %PATH%;<путь к папке>
Вместо <путь к папке> пропишите путь к каталогу, в котором собираетесь хранить сценарий. Дайте сценарию простое имя, например, test.bat. Теперь в переменных окружения будет прописан путь к тестируемому сценарию, и вам не придется лишний раз делать переходы по папкам.
Hello World – да, да, зачем ломать традиции. Наверно, автор каждой книги по программированию начинает свои примеры с это фразы… Можно даже составить целую подборку в стиле “Привет Мир на тысячи языках программирования”. Как не странно, но по этому запросу в выдаче Яндекса и правда большая часть сайтов посвященных программированию!
Для управления эхо-отображениями после echo в командной строке нужно прописать off (выключить эхо) или on (включить эхо). Теперь давайте перепишем предыдущий пример:
echo offecho Hello World &dir
Хорошо, теперь последняя строка уже не отображается, но отображается первая, что не является показателем достигнутой цели, как это исправить, я покажу дальше, по ходу статьи.
Как уже упоминалось, утилита командной строи (cmd) echo позволяет выводить данные в файл, для это после нее нужно прописать оператор > (выводит данные в файл и полностью переписывает его содержимое) или >> (выводит данные в файл, и если он не пустой, дописывает данные в конец) и путь к файлу, или просто имя файла:
echo offecho Hello World>d:workhello.txt
В данном случае, если запустить сценарий с этим кодом из консоли командной строки (cmd), то в самом окне cmd отобразится первая строка кода, а в файл hello.txt запишется строка Hello World.
Однако, можно включить или выключить вывод эхо-команд на экран в самом окне командной строки, а не только через сценарий. Для начала просто введите команду cmd echo в командной строке и нажмите ENTER, вам выведет сообщение о том, включен режим эхо или нет. Что бы отключить или включить режим эхо-вывода, используйте аналогичные команды с предыдущий примеров: on и off. Так, если вы выполните эхо off, то не будет отображаться даже путь к текущему каталогу, а если выполните команду cls (очистка экрана), то окажетесь перед черным экраном с мигающим курсором и только неизвестность из темноты будет всматриваться в ваши глаза
Для справки: что бы вывести на экран консоли пустую строку, нужно ввести команду эхо и сразу после нее прописать точку: “echo.”, межу командой и точкой не должно быть пробела.
Хорошо, теперь давайте рассмотрим cmd команду @, которая довольно часто используется на ровне с ЭХО. Данная команда предотвращает отображение эхо-команд для отдельной строки, то есть, команда @ фактически является аналогом echo off, только не для всего кода, а лишь для отельной строчки, в которой она собственно и фигурирует.
Давайте перепишем предыдущий пример:
@echo offecho Hello World>d:workhello.txt
Бинго, теперь после запуска сценария в окне командной строки cmd echo off не будет отображаться.
Или можно так прописать:
@echo Hello World>d:workhello.txt@dir>>d:workhello.txt
В данном случае мы не использовали команду echo off, зато прописали оператор cmd @ для каждой строки.
Можно даже попробовать в окне командной оболочки ввести @echo off на выполнение, в таком случае пропадет и приглашение командной строки.
По теме данной статьи можно провести аналогию с сервером сценариев Windows Script Host, в котором объект WScript.Shell использует аналогичную команду эхо для вывода данных. Так же, если мне память не изменять, функция эхо применяется в языке программирования php. Тот, кто пробовал свои силы в различных языках программирования с легкостью сможет провести между ними аналоги и найти общие точки.
In most of the modern and traditional operating systems, there are one or more user interfaces (e.g. Command Line Interface(CLI), Graphical User Interface(GUI), Touch Screen Interface, etc.) provided by the shell to interact with the kernel. Command Prompt, PowerShell in Windows, Terminal in Linux, Terminology in Bodhi Linux, and various types of Terminal Emulators [also called Pseudo Terminals] (e.g. Cmder, XTerm, Termux, Cool Retro Term, Tilix, PuTTY, etc.) are the examples of CLI applications. They act as interpreters for the various types of commands we write. We can perform most of the required operations (e.g. I/O, file management, network management, etc.) by executing proper commands in the command line.
If we want to execute a series of commands/instructions we can do that by writing those commands line by line in a text file and giving it a special extension (e.g. .bat or .cmd for Windows/DOS and .sh for Linux) and then executing this file in the CLI application. Now all the commands will be executed (interpreted) serially in a sequence (one by one) by the shell just like any interpreted programming language. This type of scripting is called Batch Scripting (in Windows) and Bash Scripting (in Linux).
Example:
Step 1: Open your preferred directory using the file explorer and click on View. Then go to the Show/hide section and make sure that the “File name extensions” are ticked.
Step 2: Now create a text file and give it a name (e.g. 123.bat) and edit it with notepad and write the following commands and save it.
echo on echo "Great day ahead" ver
Step 3: Now save the file and execute this in the CLI app (basically in CMD). The output will be like the following.
Explanation:
It was a very basic example of batch scripting. Hereby using echo on we ensure that command echoing is on i.e. all the commands will be displayed including this command itself. The next command prints a string “Great day ahead” on the screen and the ver command displays the version of the currently running OS. Note that the commands are not case sensitive (e.g. echo and ECHO will give the same output). Now I will discuss everything about the ECHO command.
The ECHO Command:
The ECHO command is used to print some text (string) on the screen or to turn the on/off command echoing on the screen.
Syntax:
echo [<any text message to print on the screen>]
or
echo [<on> | <off>]
Using the ECHO command without any parameter:
When echo is used without any parameter it will show the current command echoing setting (on/off).
Syntax:
echo
Example:
Printing a message on the screen using ECHO:
We can print any text message on the screen using echo. The message is not needed to be enclosed within single quotes or double quotes ( ‘ or “), moreover any type of quote will also be printed on the screen.
Syntax:
echo <any text message to print on the screen>
Example:
Command Echoing:
- By using echo on we can turn on command echoing i.e. all the commands in a batch file will also be printed on the screen as well as their outputs.
- By using echo off we can turn off command echoing i.e. no commands in the batch file will be printed on the screen but only their outputs, but the command echo off itself will be printed.
Syntax:
echo [<on> | <off>]
Example:
This is an example where the command echoing is turned on.
Let’s see the output.
Example:
This is an example where the command echoing is turned off.
Let’s see the output.
Using <@echo off>:
We have seen that when we use echo off it will turn off command echoing but it will print the command echo off itself. To handle this situation we can use @echo off as it will turn off command echoing and also will not print this command itself.
Syntax:
@echo off
Example:
Let’s see the output.
Printing the value of a variable:
We can declare a variable and set its value using the following syntax.
Syntax:
set variable_name=value
We can print the value of a variable using the following syntax.
Syntax:
echo %variable_name%
Note that we can put the %variable_name% anywhere between any text to be printed.
Example:
Concatenation of Strings:
We can concatenate two string variables and print the new string using echo.
Example:
Если вы оказались без доступа к чему-либо кроме командной строки или Windows PowerShell и по какой-то причине вам требуется возможность создания или чтения текстовых файлов, это вполне реализуемо, причем более чем одним методом.
В этой инструкции подробно о работе с текстовыми файлами в командной строки или PowerShell (разумеется, можно и в Терминале Windows) — создание и сохранение текстовых файлов, их вывод и чтение в консоли.
Создание текстовых файлов в командной строке
Возможность создания текстовых файлов доступна как в командной строке (cmd.exe), так и в PowerShell. Начнем с первого варианта.
Во всех случаях учитывайте, что при использовании кириллицы потенциально возможны проблемы с кодировкой, а в некоторых случаях кодировка может отличаться при использовании разных команд.
Команда ECHO
Команда командной строки echo предназначена для вывода текстовых сообщений в окне консоли, например, при выполнении сценария в bat-файле, но может быть использована и для вывода текста в файл, благодаря возможности использования оператора «>» для перенаправления вывода из консоли в файл.
Пример команды:
echo Содержимое текстового файла > file.txt
В результате её выполнения в текущей рабочей папке командной строки будет создан файл с именем file.txt и содержимым «Содержимое текстового файла».
COPY CON
Команда copy с параметром con позволяет скопировать содержимое консоли в файл. Использование возможности будет состоять из следующих шагов:
- Введите команду
copy con имя_файла.txt
файл не будет создан, но после выполнения указанной команды у вас появится возможность набрать содержимое этого файла, которое по завершении процесса будет в него сохранено.
- Курсор переместится на строчку ниже, и вы сможете набирать текст так, как делаете это обычно, включая перенос строки.
- Для завершения набора и сохранения текстового файла нажмите сочетание клавиш Ctrl+Z, а затем — Enter. Это добавит отметку конца файла и сохранит его в текущей папке с указанным на 1-м шаге именем.
Создание текстового файла в PowerShell
PowerShell также имеет набор встроенных командлетов для сохранения текстовых данных в файл.
Out-File
Использование Out-File в PowerShell по своей функциональности сходно с оператором перенаправления вывода в командной строке. Вывод консоли перенаправляется в заданный файл.
Пример использования:
"Текстовая строка" | Out-File -FilePath .file.txt
В этом примере в текущей папке PowerShell будет создан файл с именем file.txt и содержимым «Текстовая строка».
New-Item
Создание нового текстового файла в PowerShell возможно с помощью командлета New-Item. Пример команды, в которой создается текстовый файл file.txt, содержащий «Текстовая строка» в текущем расположении:
New-Item -Path . -Name "file.txt" -ItemType "file" -Value "Текстовая строка"
Set-Content и Add-Content
Ещё два командлета PowerShell для работы с текстовыми файлами:
- Set-Content — перезаписывает содержимое файла
- Add-Content — добавляет содержимое в конце выбранного файла
Их использование можно увидеть на примере следующей команды:
Add-Content -Path .file.txt -Value "Ещё одна текстовая строка"
Вывод (чтение) текстового файла в командной строке и PowerShell
Теперь перейдем к способам просмотреть текстовые файлы в командной строке или PowerShell. Как и в предыдущем случае, учитывайте, что для файлов, содержащих кириллицу, возможны проблемы с отображением символов в правильной кодировке.
TYPE
Самый простой вариант — использование команды TYPE с указанием пути к файлу, который нужно отобразить в консоли, например:
type file.txt
MORE
Если файл объемный и содержит большое количество строк, используйте команду more, например:
more file.txt
Выполнив команду, вы увидите часть содержимого текста, которая помещается в окне консоли, далее вы можете использовать следующие клавиши:
- Enter — для отображения следующей строки файла.
- Пробел — для отображения следующих строк документа, которые поместятся в активное окно консоли.
- P — Показать следующие N строк. После нажатия этой клавиши с последующим указанием количества строк, будет выведено соответствующее количество строк текстового документа.
- S — пропустить следующие N строк, работает аналогично предыдущему варианту.
- Клавиша «=» — для отображения текущего номера строки.
- Q — для прекращения выполнения команды more.
Get-Content
Вывести содержимое текстового файла в PowerShell можно с помощью Get-Content с указанием пути к файлу, например:
Get-Content file.txt
Также вы можете выводить определенные строки файла, с помощью команд вида (вывод первых или последних 10 строк соответственно):
Get-Content file.txt | Select-Object -First 10 Get-Content file.txt | Select-Object -Last 10
Или присвоить содержимое файла переменной и вывести конкретную строку:
$file_text = Get-Content file.txt $file_text[2]
Помимо использования ручного ввода команд, вы можете использовать консольные текстовые редакторы — сторонние в версиях для Windows, такие как Vim, Nano, Kinesics Text Editor или даже старый встроенный edit.com (может отсутствовать в вашей версии системы и требовать патча NTVDMx64).