Перенаправление вывода из командной строки Windows в текстовый файл
Один из самых полезных способов регистрации и устранения неполадок в поведении команд или пакетных заданий, запускаемых в Windows , — это перенаправление вывода в файл.
Однако есть несколько способов перенаправить запись из командной строки в файл. Выбранный вами вариант зависит от того, как вы хотите просмотреть вывод своей команды.
Как работает вывод командной строки Windows(How Windows Command Prompt Output Works)
Когда вы вводите команду в консоли Windows ( командная строка(command prompt) ), вывод этой команды направляется в два отдельных потока.
- STDOUT : Standard Out — это место, куда направляются любые стандартные ответы от команд. Например, стандартным ответом на команду DIR является список файлов внутри каталога.
- STDERR : Стандартная ошибка(Standard Error) — это место, куда попадают любые сообщения об ошибках, если есть проблема с командой. Например, если в каталоге нет файлов, команда DIR выведет « Файл(File) не найден» в стандартный поток ошибок .(Standard Error)
Вы можете перенаправить вывод в файл в Windows для обоих этих выходных потоков.
Перенаправить запись стандартного вывода в новый файл(Redirect Standard Output Write to New File)
Есть два способа перенаправить стандартный вывод команды в файл. Первый заключается в отправке вывода команды для записи в новый файл каждый раз, когда вы запускаете команду.
Для этого откройте командную строку и введите:
dir test.exe > myoutput.txt
Символ > указывает консоли вывести STDOUT в файл с указанным вами именем.
Когда вы запустите эту команду(run this command) , вы заметите, что в командном окне нет никакого ответа, кроме ошибки, что файл не существует.
Это связано с тем, что стандартный вывод команды был перенаправлен в файл с именем myoutput.txt. Теперь файл существует в том же каталоге, где вы выполнили команду. Стандартный вывод ошибок по-прежнему отображается, как обычно.
Примечание(Note) . Будьте осторожны, чтобы изменить активный каталог(change the active directory) для командной строки перед запуском команды. Таким образом, вы будете знать, где хранятся выходные файлы.
Вы можете просмотреть стандартный вывод, который был отправлен в файл, набрав «myoutput.txt» в командном окне. Это откроет текстовый файл в программе просмотра текстовых файлов по умолчанию. Для большинства людей это обычно Notepad.exe .
При следующем запуске той же команды предыдущий выходной файл будет удален. Новый выходной файл будет воссоздан с выводом последней команды.
Перенаправить запись стандартного вывода в тот (Standard Output)же файл(Same File)
Что делать, если вы не хотите перезаписывать тот же файл? Другой вариант — использовать >> вместо > для перенаправления в выходной файл. В случае этого примера вы должны ввести:
dir test.exe >> myoutput.txt
Вы увидите тот же вывод (только ошибка).
Но в этом случае вместо перезаписи выходного файла эта команда добавляет новый вывод к существующему выходному файлу.
Каждый раз, когда вы запускаете команду и добавляете выходные данные в файл, она записывает новый стандартный вывод в конец существующего файла.
Перенаправить стандартную ошибку в файл(Redirect Standard Error To a File)
Точно так же, как вы можете перенаправить запись стандартного вывода в файл, вы также можете вывести стандартный поток ошибок в файл.
Для этого вам нужно добавить 2> в конец команды, а затем выходной файл ошибки, который вы хотите создать.
В этом примере вы наберете команду:
dir test.exe > myoutput.txt 2> output.err
Это отправляет стандартный поток вывода в myoutput.txt, а стандартный поток ошибок — в output.err. В результате в окне консоли вообще не отображается поток вывода.
Однако вы можете увидеть сообщения об ошибках, набрав output.err . Это откроет файл в средстве просмотра текстовых файлов по умолчанию.
Как видите, любые сообщения об ошибках от команды выводятся в файл ошибок. Как(Just) и в случае со стандартным выводом, вместо этого вы можете использовать >> , чтобы добавить ошибку к ошибкам из ранее запущенных команд.
Перенаправить все выходные записи в один и тот же файл(Redirect All Output Writes to a Same File)
Все описанные выше подходы приводят к созданию нескольких файлов. Один файл предназначен для стандартного потока вывода, а другой — для стандартного потока ошибок.
Если вы хотите включить оба этих вывода в один и тот же файл, вы тоже можете это сделать. Для этого вам просто нужно перенаправить весь вывод в один и тот же файл с помощью следующей команды.
dir test.exe 1> myoutput.txt 2>&1
Вот как работает эта команда:
- Стандартный вывод направляется в выходной файл, обозначенный выходным номером 1.
- Стандартный вывод ошибок, обозначенный цифрой 2, перенаправляется в выходной файл, обозначенный цифрой 1.
Это добавит вывод ошибки в конец стандартного вывода.
Это полезный способ увидеть все выходные данные для любой команды в одном файле.
Заглушение стандартных выходных потоков или потоков ошибок(Silencing Standard or Error Output Streams)
Вы также можете отключить стандартный вывод(Standard Output) или стандартную ошибку(Standard Error) , перенаправив вывод в NUL вместо файла.
Используя приведенный выше пример, если вам нужен только стандартный вывод(Standard Output) и вообще никаких стандартных ошибок(Standard Error) , вы можете использовать следующую команду:
dir test.exe 1> myoutput.txt 2>nul
Это приведет к тому же выходному файлу, что и в первом примере выше, где вы только перенаправили стандартный вывод(Standard Output) , но с этой командой ошибка не будет отображаться внутри консоли. Он также не будет создавать файл журнала ошибок.
Это полезно, если вы не заботитесь об ошибках и не хотите, чтобы они стали помехой.
Вы можете выполнить любую из тех же команд вывода, что и выше, из BAT-файла,(inside a BAT file) и вывод этой строки будет отправлен в указанный вами выходной файл. Это полезный способ узнать, были ли какие-либо команды в BAT - файле с ошибками при попытке запуска.
Related posts
Сохранение списка запущенных процессов в текстовый файл в Windows
Как использовать команду Taskkill в Windows 10/11
Как удалить текст со значков на панели задач Windows
Запретить доступ к командной строке в Windows
Удалите текстовые метки со значков на рабочем столе в Windows 7/8/10
Как писать или рисовать в файле PDF на Mac и Windows
Как открыть файлы DDS в Windows 10
Как настроить и использовать песочницу браузера в Windows
Как исправить ошибку «Стоп: 0x000000F4 синий экран» в Windows
ChkDsk Command Line Options, Switches, Parameters в Windows 10
Как получить список всех служб Windows с помощью PowerShell или командной строки
Откройте командную строку в папке с помощью проводника Windows
Outlook Command Line Switches на Windows 10
Как открыть файлы 7Z в Windows, Mac и Linux
Как использовать FINDSTR and Select-String Commands в Windows 11/10
Список команд DISKPART и как их использовать в Windows 11/10
Рецензия на книгу — Руководство для гиков по Windows 8
Включить и отключить функции Windows
Включите игровой режим, чтобы сгладить производительность в Windows 10
Включить микрофон, линейный аудиовход и стереомикс в Windows