Cmd запись в текстовый файл

Вывод в файл txt результатов выполнения команды в cmd

Иногда возникает желание зафиксировать результат выполнения команды в cmd . Как правило , такое желание возникает , когда текст не помещается в окно командной строки ( cmd ).

Синтаксис для записи результата выполнения команды простой .

Команда_с_ключами > путь_к_файлу имя_файла.txt

То есть вначале пишется команда со всеми ключами и параметрами , а сразу после последнего символа ставиться символ > потом пробел и пишется путь и имя файла , в который будет сохранен результат . Результат будет сохранен в файл без вывода на экран . Файл сохраняется в кодировке DOS-866.

Для примера , выполним команду ping itindustry-spb.ru с записью на диск D в файл ping.txt

Для этого в командной строке выполняем команду ping itindustry-spb.ru > D: ping.txt

Ниже показан результат выполнения этой команды

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

Часто возникает необходимость сохранить вывод из командной строки.

Способ № 1. Сохранения текста из командной строки в файл.

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

Например, вводим ipconfig /all >> d:cmd.txt и жмем ввод для выполнения команды. После того как команда будет выполнена в текстовом файле cmd.txt на диске d: будут сохранены все результаты. При этом в текст будет закодирован с помощью кодировки IBM CP866. Поэтому для того чтобы его открыть придётся использовать сторонние приложения, например программу Akelpad.

Читайте также:  Php количество файлов в папке

Способ № 2. Сохранение текста из командной строки в буфер обмена.

С помощью команды clip вывод командной строки можно направить в буфер обмена. Для этого после команды нужно добавить: | clip (пробел, вертикальная черта и команда clip) .

Например, вводим ipconfig /all | clip и жмем ввод для выполнения команды. Когда выполнение команды будет завершено, результаты будут помещены в буфер обмена. Для того чтобы воспользоваться этими результатами достаточно вставить текст в любом текстовом редакторе с помощью всем известной комбинации клавиш Cntrl+V.

Способ № 3. Скопировать текст из командной строки.

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

Чтобы это сделать кликаем правой кнопкой мышки по командной строке и вызываем контекстное меню. В открывшемся меню выбираем пункт «Пометить».

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

Командная строка — неизменный компонент любой операционной системы Windows, который берет свое происхождение прямиком от её предка — операционной системы MS-DOS. Данная программа имеет довольно широкие возможности, но сейчас мы поговорим о довольно примитивной вещи — сохранение (по факту — перенаправление) вывода командной строки в текстовый файл.

Описание

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

Как видно, командная строка не вывела никакого результата введенной команды на экран, но зато сохранила все в файл ping.txt. К сожалению, существуют ограничения перенаправления вывода, которые не позволяют одновременно отображать вывод и в окне командной строки, и сохранять их в текстовый файл. Однако, можно воспользоваться хитростью — сразу по завершению выполнения команды вывести содержимое текстового файла на экран с помощью команды type. Получится что-то следующее:

Читайте также:  Смартфон все время перезагружается

Если требуется файл не записывать (существующий текстовый файл будет перезаписан), а дописывать (существующий текстовый файл будет дополнен), нужно вместо одного символа ">" использовать два — ">>".

Почитать о том, как сделать тоже самое в LinuxBSD системах можно в этой статье.

Другие статьи:

Комментарии:

    rekill

  • 22.08.2019 15:06

У меня есть программа на Visual Studio C++ она выводит числа и текст,можно ли как-то сохранять все что выводит в текстовый документ?
Искал в интернете ничего не нашел про вывод в текстовый документ именно в C++.

Если у Вас программа в Visual Studio, то есть, вы обладаете её исходными кодами — то Вам нужно модифицировать её исходный код, добавив помимо вывода чисел и текста на экран, сохранение в текстовый файл.

А ещё такой вопрос. В Файл всё Сохраняется нечитабельно, можно исправить с помощью той же командной строки?

Самый простой вариант, который без проблем подойдет для большинства случаев — это сперва выполнить команду chcp 855 . Единственный минус — при этом все будет на английском.

Добрый день.
Тогда можно можно ещё и на ФТП грузить результат ?)

Можно, но для этого нужно будет лучше написать отдельную статью. Как руки дойдут — обязательно сделаю!

Не совсем понял про какие переменные для ping или systeminfo идет речь, поэтому лучше уточните, что именно вы хотите сделать.

Если же речь идет про переменные, вроде %COMPUTERNAME% , то их можно найти выполнив в командной строке команду set , либо по запросу "Переменные среды" в интернете.

ДА, лучше, благодарю. Напоследок, где поточнее можно почитать про другие переменные, которые может использовать тот же ping или systeminfo (нужно было для systeminfo), а то в хелпе к systeminfo описаны лишь несколько базовых операций, а про переменные ни слова.

Читайте также:  Как включить режим рецензирования в word

А вам не проще будет использовать имена компьютеров в имени файлов отчета? Для этого используйте переменную %COMPUTERNAME% в названии файла, в который идет сохранение, например:

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

Что подразумевается под общим диском? Если сетевой диск, то у него должна быть конкретная буква, под которой он смонтирован в системе, и нужно проделать все то же самое, о чем написано в статье:

ping 8.8.8.8 > Z: est.txt

Если под общим диском подразумевается сетевая "шара", то и тут нужно делать все тоже самое, например:

ping 8.8.8.8 > \serverupload est.txt

А возможно ли записать файл с результатом на общий диск?