Команда echo в командной строке используется для вывода данных на экран консоли или же в файл, и для включения/выключения эхо-отображения команд.
Эхо-отображения – вывод на экран самих команд, а не только результат их выполнения. Так, если мы пропишем в сценарии следующую строку кода:
echo Hello World & dir |
а потом запустим его через консоль командной строки, то вначале нам выведет сами команды (echo Hello World & dir), а уже потом результат их выполнения. В данном случае команда cmd – echo, выводит строку Hello World, а команда dir (смотрите статью «Утилита DIR«) – содержимое текущего каталога, символ & отвечает за конкатенацию (объединение) обеих команд (смотрите статью «Урок 2 по CMD — операторы командной строки«).
Для простоты запуска сценариев, пропишите в командной строке:
Path %PATH%;<путь к папке> |
Вместо <путь к папке> пропишите путь к каталогу, в котором собираетесь хранить сценарий. Дайте сценарию простое имя, например, test.bat. Теперь в переменных окружения будет прописан путь к тестируемому сценарию, и вам не придется лишний раз делать переходы по папкам.
Hello World – да, да, зачем ломать традиции. Наверно, автор каждой книги по программированию начинает свои примеры с это фразы… Можно даже составить целую подборку в стиле “Привет Мир на тысячи языках программирования”. Как не странно, но по этому запросу в выдаче Яндекса и правда большая часть сайтов посвященных программированию!
Для управления эхо-отображениями после echo в командной строке нужно прописать off (выключить эхо) или on (включить эхо). Теперь давайте перепишем предыдущий пример:
echo off echo Hello World & dir |
Хорошо, теперь последняя строка уже не отображается, но отображается первая, что не является показателем достигнутой цели, как это исправить, я покажу дальше, по ходу статьи.
Как уже упоминалось, утилита командной строи (cmd) echo позволяет выводить данные в файл, для это после нее нужно прописать оператор > (выводит данные в файл и полностью переписывает его содержимое) или >> (выводит данные в файл, и если он не пустой, дописывает данные в конец) и путь к файлу, или просто имя файла:
echo off echo Hello World>d:\work\hello.txt |
В данном случае, если запустить сценарий с этим кодом из консоли командной строки (cmd), то в самом окне cmd отобразится первая строка кода, а в файл hello.txt запишется строка Hello World.
Однако, можно включить или выключить вывод эхо-команд на экран в самом окне командной строки, а не только через сценарий. Для начала просто введите команду cmd echo в командной строке и нажмите ENTER, вам выведет сообщение о том, включен режим эхо или нет. Что бы отключить или включить режим эхо-вывода, используйте аналогичные команды с предыдущий примеров: on и off. Так, если вы выполните эхо off, то не будет отображаться даже путь к текущему каталогу, а если выполните команду cls (очистка экрана), то окажетесь перед черным экраном с мигающим курсором и только неизвестность из темноты будет всматриваться в ваши глаза
Для справки: что бы вывести на экран консоли пустую строку, нужно ввести команду эхо и сразу после нее прописать точку: “echo.”, межу командой и точкой не должно быть пробела.
Хорошо, теперь давайте рассмотрим cmd команду @, которая довольно часто используется на ровне с ЭХО. Данная команда предотвращает отображение эхо-команд для отдельной строки, то есть, команда @ фактически является аналогом echo off, только не для всего кода, а лишь для отельной строчки, в которой она собственно и фигурирует.
Давайте перепишем предыдущий пример:
@echo off echo Hello World>d:\work\hello.txt |
Бинго, теперь после запуска сценария в окне командной строки cmd echo off не будет отображаться.
Или можно так прописать:
@echo Hello World>d:\work\hello.txt @dir>>d:\work\hello.txt |
В данном случае мы не использовали команду echo off, зато прописали оператор cmd @ для каждой строки.
Можно даже попробовать в окне командной оболочки ввести @echo off на выполнение, в таком случае пропадет и приглашение командной строки.
По теме данной статьи можно провести аналогию с сервером сценариев Windows Script Host, в котором объект WScript.Shell использует аналогичную команду эхо для вывода данных. Так же, если мне память не изменять, функция эхо применяется в языке программирования php. Тот, кто пробовал свои силы в различных языках программирования с легкостью сможет провести между ними аналоги и найти общие точки.
Хорошие уроки