Вывод bat в текстовый файл

Команда ECHO – вывод текста на экран консоли

Формат командной строки:

В текстовый файл logfile.txt записывается дата и время начала работы
командного файла, некоторые результаты и время завершения.

При выводе служебных символов, интерпретируемых командным процессором нужно использовать символ ^. Например, вместо значения переменной ERRORLEVEL, нужно вывести текст “%ERRORLEVEL%”

< nul set /p str=”text1 ”

< nul set /p str=”text2″

< nul set /p str=”text3″

При выполнении такого командного файла сообщение на экране будет представлено одной строкой:

Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. Можно использовать и стандартные возможности командной строки, добавив комбинацию CTRL+G :

Весь список команд CMD Windows

Командная строка представляет собой программное средство ввода команд пользователем и получения результатов их выполнения на экране. В современных операционных системах семейства Windows, командную строку обеспечивает стандартное приложение cmd.exe, так же называемое командным процессором, интерпретатором команд и консолью. Приложение ”Командная строка” предоставляет пользователю текстовый интерфейс для ввода команд и получения результатов их выполнения. Фактически, командная строка является программным эмулятором классической консоли первых компьютерных систем, представляющей собой терминал с клавиатурой, используемый оператором в качестве средства общения с компьютером. Как и во времена первых компьютеров, командная строка поддерживает стандартное устройство ввода – клавиатуру, и стандартное устройство вывода – дисплей. Пользователь вводит команды с клавиатуры и получает результаты их выполнения на экране дисплея.

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

В этой инструкции подробно о работе с текстовыми файлами в командной строки или PowerShell (разумеется, можно и в Терминале Windows) — создание и сохранение текстовых файлов, их вывод и чтение в консоли.

Создание текстовых файлов в командной строке

Возможность создания текстовых файлов доступна как в командной строке (cmd.exe), так и в PowerShell. Начнем с первого варианта.

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

В результате её выполнения в текущей рабочей папке командной строки будет создан файл с именем file.txt и содержимым «Содержимое текстового файла».


Вывод bat в текстовый файл

COPY CON

Команда copy с параметром con позволяет скопировать содержимое консоли в файл. Использование возможности будет состоять из следующих шагов:

Создание текстового файла в PowerShell

PowerShell также имеет набор встроенных командлетов для сохранения текстовых данных в файл.

Out-File

Использование Out-File в PowerShell по своей функциональности сходно с оператором перенаправления вывода в командной строке. Вывод консоли перенаправляется в заданный файл.

В этом примере в текущей папке PowerShell будет создан файл с именем file.txt и содержимым «Текстовая строка».

New-Item

Создание нового текстового файла в PowerShell возможно с помощью командлета New-Item. Пример команды, в которой создается текстовый файл file.txt, содержащий «Текстовая строка» в текущем расположении:

New-Item -Path . – Name “file.txt” -ItemType “file” -Value “Текстовая строка”


Вывод bat в текстовый файл

Set-Content и Add-Content

Ещё два командлета PowerShell для работы с текстовыми файлами:

:/>  Как установить виндовс на макбук про 2011

Их использование можно увидеть на примере следующей команды:

Add-Content -Path .ile.txt -Value “Ещё одна текстовая строка”


Вывод bat в текстовый файл

Вывод (чтение) текстового файла в командной строке и PowerShell

Теперь перейдем к способам просмотреть текстовые файлы в командной строке или PowerShell. Как и в предыдущем случае, учитывайте, что для файлов, содержащих кириллицу, возможны проблемы с отображением символов в правильной кодировке.

TYPE

Самый простой вариант — использование команды TYPE с указанием пути к файлу, который нужно отобразить в консоли, например:


Вывод bat в текстовый файл

MORE

Если файл объемный и содержит большое количество строк, используйте команду more, например:

Выполнив команду, вы увидите часть содержимого текста, которая помещается в окне консоли, далее вы можете использовать следующие клавиши:


Вывод bat в текстовый файл

Get-Content

Вывести содержимое текстового файла в PowerShell можно с помощью Get-Content с указанием пути к файлу, например:


Вывод bat в текстовый файл

Также вы можете выводить определенные строки файла, с помощью команд вида (вывод первых или последних 10 строк соответственно):

Или присвоить содержимое файла переменной и вывести конкретную строку:


Вывод bat в текстовый файл

Помимо использования ручного ввода команд, вы можете использовать консольные текстовые редакторы — сторонние в версиях для Windows, такие как Vim, Nano, Kinesics Text Editor или даже старый встроенный edit.com (может отсутствовать в вашей версии системы и требовать патча NTVDMx64).

Запуск командной строки.

Для запуска командной строки можно воспользоваться одним из следующих способов:

Пуск – Выполнить (или клавиши Win+R) введите cmd и нажмите клавишу Enter;

Пуск – Все программы – Стандартные – Командная строка»;

Пуск – Поиск – Командная строка.
Также, для запуска командной строки можно использовать заранее подготовленный ярлык, ссылающийся на исполняемый файл %SystemRoot%system32cmd.exe ( обычно – C:Windowssystem32cmd.exe). Выполнение некоторых команд требует повышенных привилегий, поэтому, приложение командной строки должно быть запущено с использованием пункта контекстного меню ”Запуск от имени администратора”, вызываемого правой кнопкой мышки.

Настройка командной строки.

Страница, посвященная настройкам командного процессора CMD

Работа в командной строке предполагает ввод данных с клавиатуры, при чем, иногда довольно большого объема. Этот объем можно значительно сократить, используя некоторые приемы:

Использование буфера обмена.

Текст, выделенный в окне приложения, можно скопировать в буфер обмена, а также вставить его из буфера обмена в поле ввода. При стандартных настройках командной строки для выделения текста используется пункт ”Пометить” контекстного меню, вызываемого правой кнопкой мышки. При желании, в свойствах ярлыка, с помощью которого выполняется запуск можно включить режим выделения мышью:


Вывод bat в текстовый файл

В режиме выделения мышью, контекстное меню не используется, а текст выделяется с использованием левой кнопки мышки. Копирование и вставка выполняется при нажатии правой кнопки мышки.
При включенном режиме ”Разрешить сочетания клавиш с CONTROL”, можно использовать стандартные сочетания клавиш:

– CTRL+C (CTRL+Insert) – скопировать выделенный текст.

– CTRL+V (Shift+Insert) – вставить выделенный текст.

Использование истории команд и горячих клавиш.

Для вызова ранее введенных команд используются клавиши со стрелками Стрелка Вверх – на одну команду назад и Стрелка Вниз – на одну команду вперед. Кроме того, можно использовать функциональные клавиши:

F1 – посимвольный вызов последней введенной команды. Каждое нажатие F1 приводит к последовательной подстановке в поле ввода одного символа из предыдущей команды.

:/>  Нет звука в Bluetooth наушниках (колонке) в Windows 11. Не отображаются в звуковых устройствах

F2 – копирование до символа. После нажатия на F2 на экране отображается запрос символа, до которого будет скопирована предыдущая команда. Например, если предыдущая команда была ping yandex.ru, и в качестве символа задана точка, то в строку ввода команды будет занесено ping yandex, если задан пробел, то – ping.

F3 – вызов предыдущей команды.

F4 – удалить до символа. Выполняется удаление текста от текущей позиции курсора до заданного символа.

F5 и F8 – вызов буфера ранее введенных команд. Вывод по нажатию клавиши F5 прекращается когда будет отображена первая введенная команда текущей сессии.

F7 – отображение ранее введенных команд в отдельном окне в виде списка. Для выполнения нужной команды нужно выбрать ее, используя клавиши со стрелками, и нажать ENTER

F9 – выполнить команду, номер которой запрашивается. Номер команды в списке истории можно получить при использовании F7.

В Windows 10 / Windows Server 2016 появились возможности, отсутствующие в предыдущих реализациях командной строки:

– Изменение прозрачности окна консоли при нажатии комбинаций CTRL+Shift+- или CTRL+Shift++.

– Включение / выключение полноэкранного режима при нажатии CTRL+Enter.

– Расширение возможностей выделения текста и редактирования:

Shift+Home – выделить текст от текущего положения курсора до начала строки.

Shift+End – выделить текст от текущего положения курсора до конца строки.

– Быстрое перемещение по буферу экрана и поиск по контексту:

CTRL+Home – перейти в начало буфера экрана

CTRL+End – перейти в конец буфера экрана.

CTRL+Стрелка Вверх – перемещение на 1 строку вверх.

CTRL+Стрелка Вниз – перемещение на 1 строку вниз.

CTRL+F – открыть диалог поиска текста в буфере экрана.

Окно командной строки в Windows 10 можно закрыть с помощию стандартной комбинации клавиш – ALT+F4.

Для отключения новых возможностей CMD, необходимо в свойствах приложения установить галочку ”Использовать прежнюю версию консоли (требуется перезапуск)”

Автодополнение путей файлов

В командной строке Windows можно выполнять подстановку имен файлов и каталогов при нажатии клавиши Tab. Например, для перехода, в каталог с длинным именем Program Files наберите начальную часть имени каталога

CD Pro и нажмите Tab. В строке ввода должна появиться команда :

CD “Program Files”

Как видим, выполняется подстановка недостающей части имени каталога, а в тех случаях, когда в нем имеется символ пробела, добавляются еще и двойные кавычки.

Если имеется несколько совпадающих начальных частей имен файлов или каталогов, при каждом нажатии клавиши Tab будет подставляться следующее по алфавитному порядку имя. Для возврата на предыдущее – используется комбинация Shift+Tab

Перенаправление данных стандартного ввода /вывода консоли.

Как уже упоминалось, в качестве стандартного устройства ввода командной строки используется клавиатура, а в качестве устройства вывода – дисплей. Однако, существует возможность перенаправления ввода-вывода на другие устройства c использованием операторов перенаправления:

< – перенаправление ввода. Данные считываются не с клавиатуры, а из файла или другого устройства.

cmd < 1.txt – запустить командный процессор CMD и выполнить ввод данных из файла 1.txt. Если в файле поместить строку ping –n 100 yandex.ru, то выполнится команда, рассмотренная выше.

Нередко, вывод одной команды нужно передать в качестве вводимых данных для другой, т.е. объединить команды в последовательную цепочку:

Использование дескрипторов ввода-вывода консоли.

Каждому открытому файлу или устройству соответствует свой дескриптор ( handle) который представляет собой неотрицательное число, значение которого используется породившим поток ввода-вывода процессом. По умолчанию, для всех процессов, в том числе и для командного интерпретатора cmd.exe :

:/>  Сброс smart на жестких дисках samsung

0 ( STDIN ) – дескриптор стандартного ввода (ввод с клавиатуры).

1 (STDOUT) – дескриптор стандартного вывода (вывод на экран).

2 (STDERR) – дескриптор вывода диагностических сообщений (сообщений об ошибках на экран).

Дескрипторы можно использовать в тех случаях, когда требуется перенаправить (изменить) источники и приемники данных в стандартных потоках ввода-вывода. Например:

Для задания перенаправления в существующие дескрипторы используется амперсанд (&), затем номер требуемого дескриптора (например, &1):

Объединение нескольких команд в цепочку

& – одиночный амперсанд используется для разделения нескольких команд в одной командной строке. Например:

&& – условное выполнение второй команды. Она будет выполнена, если код завершения (значение которого передается в стандартную переменную ERRORLEVEL) первой команды равен нулю, т.е. команда выполнена успешно.

команда1 && команда2 – выполняется команда1, а команда2 выполняется, только если первая была выполнена успешно. Например:

ping ya.ru -err & ping –n 2 ya.ru – при использовании единичного амперсанда, первая команда ping ya.ru –err выдаст сообщение о неверном параметре -err, а вторая, ping –n 2 ya.ru выполнит двукратный пинг узла ya.ru

ping ya.ru -err && ping –n 2 ya.ru – при использовании двойного амперсанда, первая команда ping ya.ru –err выдаст сообщение о неверном параметре -err и соответственно, сформирует код завершения не равный нулю (ошибка), что приведет к тому, что вторая команда ( ping ya.ru -n 2) выполнена не будет.

В некоторых случаях может возникнуть необходимость запрета обработки служебных символов и трактовки их в качестве простого текста. Например, если ввести в командной строке

то вместо текста ping -n 1 ya.ru & ping -n 2 ya.ru будет выведена его часть до символа амперсанда ping -n 1 ya.ru и затем выполнена команда после амперсанда – ping -n 2 ya.ru . Проблему решает использование специального экранирующего символа ^ , который позволяет использовать служебные символы как текст:

TYPE C:plan.txt && DIR & COPY /?

команда COPY /? запустится в любом случае, независимо от результата выполнения команды TYPE C:plan.txt. Но, несколько команд можно сгруппировать с помощью скобок. Например, есть 2 командные строки:

TYPE C:plan.txt && (DIR & COPY /?)

В первой из них символ условной обработки && действует только на команду DIR, во второй — одновременно на две команды: DIR и COPY. В качестве наглядного эксперимента, попробуйте выполнить вторую команду при условиях наличия и отсутствия файла C:plan.txt. Для создания пустого файла можно воспользоваться копированием из фиктивного устройства nul:

copy nul C:plan.txt

Для удаления файла используется команда erase c:plan.txt или del C:plan.txt

Командные файлы

Прочие материалы для освоения работы в командной строке Windows:

Windows Terminal – альтернатива командной строке в Windows 10.

Список команд CMD с описанием и примерами.

Настройка командной строки Windows.

Работа с сетью в командной строке.