Запись из 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, т.е.:

1STDOUT
2STDERR
3STDIN

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

Переопределяется вывод на 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

HUILO.EXE: Не дай Украине остаться без газа!

Пересобрал в экзешник прикольную старую флешевскую игрушку, как раз на злобу дня.

Правила простые — кидайтесь яйцами в Хуйло, и не забывайте закрывать вентили, которые Хуйло успело открутить (кликом по ним).

Скачать с Mega.NZ (RAR: SWF+EXE)

OT VINTA — Не мала баба клопоту…

Спрашивали — отвечаем. Да, я знаю эту песню и люблю ее, как очень многое из украинского рока (в данном случае — рокабилли).

Есть ютубная версия:

Прямая ссылка: https://youtu.be/u7DhIEm6BDI

Но для моих дорогих подпизчиков мне удалось сохранить самую первую версию клипа во Flash, которая откроет все его грани в УльтраHD-качестве, и да, вряд ли, за давностью лет, она сохранилась у самих Ot Vinta.

Скачать SWF+EXE с Mega.NZ

БрокаЦентр — ДЕрьМО [Full album, 2003]

Прямая ссылка https://youtu.be/3ch8qdiOXB0:

Tracklist:

00:00 — Хой!
03:40 — Сыпь, гармоника (стихи С. Есенина)
06:00 — Рожь
08:29 — Ботинки и пиво
10:24 — Мой друг
12:08 — Ода конопле
13:33 — Пьяница (стихи С. Есенина)
16:41 — Бои без правил (skinhead music)
20:41 — Настёна

На Realrock/Realmusic

Альбом на MEGA.NZ (RAR and MP3)

ЗЫ. Красно-черную в хорошем качестве не нашел, но может чего другое М.В. зайдет, ИМХО, так «Хой!» годная. Или «Бои без правил». Ну «Ода конопле» должна Глебу зайти.