Как сохранить в текстовый файл вывод командной строки Windows

  • 15 336
  • 10
  • 100,00%
  • 9

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

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

ping 8.8.8.8 > C:\Logs\ping.txt

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

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

ping 8.8.8.8 > C:\Logs\ping.txt & type C:\Logs\ping.txt

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

ping 8.8.8.8 >> C:\Logs\ping.txt

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



Поделиться

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

    • Руслан

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

    • Recluse

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

    ping 8.8.8.8 > Z:\test.txt

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

    ping 8.8.8.8 > \\server\upload\test.txt

    • Павел

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

    • Recluse

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

    ping 8.8.8.8 > E:\%COMPUTERNAME%.txt
    • Павел

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

    • Recluse

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

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

    • Александр

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

      • Recluse

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

    • Александр

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

      • Recluse

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

Добавить комментарий

Ваш e-mail не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.