Толик Панков
hex_laden
............ .................. ................

October 2030
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Back October 24th, 2021 Forward
Запись из BAT/CMD-файла в STDERR.

Небольшой пост из серии спрашивали - отвечаем.

Примечание: это работает только в версиях Windows, где командный процессор умеет в расширенную обработку команд, т.е., начиная с Windows 2000.

Расширенная обработка команд по умолчанию включена в Windows Server 2003/Windows XP, но может быть отключена через Реестр, так что для совместимости лучше ее включить явно:

SetLocal EnableExtensions

Команда echo по умолчанию выводит на STDOUT, т.е., например, команда:

echo I write to STDOUT

Выведет текст I write to STDOUT на STDOUT, да на мне капитанская фуражка :)

Для вывода текста на STDERR необходимо использовать переопределение вывода, синтаксис которого похож на аналогичный синтаксис в Linux, т.е. в современных Windows тоже есть три канала ввода/вывода, с номерами, аналогичными Linux, т.е.:

1 - STDOUT
2 - STDERR
3 - STDIN

Стандартные потоки

Переопределяется вывод на STDERR конструкцией 1>&2, т.е. команда

echo I write to STDERR 1>&2

Выведет текст I write to STDERR на STDERR.

BAT-файл writeto.bat целиком:

@echo off
SetLocal EnableExtensions
rem This BAT file write in stdout and stderr

echo I write to STDOUT
echo I write to STDERR 1>&2


Проверка


Для проверки работы BAT-файла можно создать тестовый BAT-файл, который будет вызывать файл writeto.bat и перенаправлять потоки вывода STDOUT и STDERR в текстовые файлы.
Содержимое файла writeto_test.bat:

@echo off
SetLocal EnableExtensions
rem This BAT file test for writeto.bat

call writeto.bat 1>_stdout.txt 2>_stderr.txt


Данный файл надо создать в каталоге с writeto.bat.

После запуска файла writeto_test.bat в текущем каталоге появятся файлы _stdout.txt и _stderr.txt со следующим содержимым:

_stdout.txt:
	I write to STDOUT

_stderr.txt:
	I write to STDERR


ФАНФАРЫ!

Пример на GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2021/10/14/zapis-iz-bat-cmd-fajla-v-stderr/

Tags: ,
Back October 24th, 2021 Forward