Менеджер, бухгалтерша и сисадмин, инопланетные на астероиде отмечают пятницу ^_^, хотя мне в общем смысле Ф.И.О. Летова, т.к. у меня каждый день пятница.

Менеджер, бухгалтерша и сисадмин, инопланетные на астероиде отмечают пятницу ^_^, хотя мне в общем смысле Ф.И.О. Летова, т.к. у меня каждый день пятница.

Пост из серии спрашивали — отвечаем.
Итак, как в C# записать в STDERR. STDERR — это стандартный поток вывода для сообщений об ошибках, туда правильно организованные консольные приложения отправляют, собственно, сообщения об ошибках. Отправить в STDERR сообщение можно с помощью объекта Console.Error:
Console.Error.WriteLine("Write to STDERR.");
static void Main(string[] args)
{
Console.WriteLine("Write to STDOUT.");
Console.Error.WriteLine("Write to STDERR.");
}
Для проверки можно создать BAT-файл, вызывающий тестовое приложение и переопределяющий (копия) вывод со стандартных потоков в файлы stderr_.txt и stdout_.txt. stderr и stdout являются зарезервированными системными именами, потому к именам файлов надо что-то добавить, знак _ в данном случае:
Экран при выполнении тестового приложения:
Z:\...\write2stderr\write2stderr\bin\Debug>write2stderr.exe
Write to STDOUT.
Write to STDERR.
При выполнении BAT-файла экран останется пустым, но в директории с файлом появятся два файла stderr_.txt и stdout_.txt со следующим содержимым.
stderr_.txt: Write to STDERR. stdout_.txt: Write to STDOUT.
В этом тексте описываются опасные эксперименты. Пожалуйста, не повторяйте их дома. Автор и редакция отказываются от любой ответственности, если вы повторите опыты на себе.
Красный мухомор не содержит наркотических или иных запрещенных веществ, внесенных в списки таковых в Российской Федерации, США, Украине, Великобритании, Австралии или Европейском Союзе. Данный текст является любительским научным исследованием и не пропагандирует употребление запрещенных веществ. Красный мухомор относится к ядовитым, условно ядовитым или несъедобным грибам, в зависимости от классификации в различных научных исследованиях. Мы не рекомендуем его употребление. При самостоятельном сборе, при отсутствии твердых знаний в определении видов грибов, можно перепутать мухомор красный с другими схожими видами (мухомор вонючий, мухомор поганковидный, и даже с бледной поганкой), что несет прямую угрозу жизни и здоровью. Если Вы не обладаете соответствующими знаниями, не пытайтесь самостоятельно собирать грибы.
Давно хотел написать про сабж, а сегодня вот
glebo@ljr с началом сезона поздравляет. Я уже пару лет назад насмотрелся и наслушался Вишневского, и все хотел проверить на себе, як воно.
Естественно, перед всеми экспериментами 5 дней не употреблялось других психоактивных веществ, в т.ч. и алкоголя. Исключение — никотин.
В прошлом 2020 году, где-то в начале сентября, я таки собрался за мухоморами, собрал. Доза — две средних взрослых (раскрывшихся) шляпки, и две молодых (нераскрывшихся). Фото в прошлый раз, к сожалению, не делал.
Употребление: необработанными с солью.
Эффект: где-то минут через 40 появился звон в ушах, немного затормозилось восприятие окружающего, были очень слабые визуалы, буквально на периферии зрения, вроде как капли воды на объективе фотоаппарата, когда в визор смотришь, впрочем, они быстро пропадали. Постепенно к горлу подкатывал ком, потом я попросил ассистента принести мне таз, сам принял лежачее положение, т.к. просто «поплохело» по общему состоянию.
В голову начали лезть странные фразы и мысли, причем по типу «Гастронома на улице Герцена», т.е. все слова нормальные, а смысла в них мало, одну даже запомнил: «Справедливость находится не на каждом разводе милиции».
Потом меня стошнило в таз, довольно мощно. Поскольку употреблял почти на голодный желудок, то вырвало довольно беспроблемно и не очень противно. Выпил сладкого морса, опять стошнило сладеньким, второй раз блевать было даже как-то по кайфу.
После рвоты расслабило, неприятные ощущения ушли, стало как-то кайфово, не сильно, скорее как «дички», т.е. очень лайтовой травы покурил. Включил плейлист с Ragga-Jungle миксами и просто валялся на диване, наслаждаясь музыкой и расслабоном.
Буквально по горячим следам. Почему-то получился более негативным, хотя я последовал совету опытного «грибника»
glebo@ljr, который он давал анонимусу, также столкнувшемуся с проблемой тошноты: слегка обжарить мухоморы на сливочном масле.
Вот сырье:

Из пожаренного съел примерно три четверти, потом как-то резко не полезло, хотя, ярко выраженного кома в горле тоже не возникло, на вкус приемлемо, хотя и необычно. Но кулинар из меня говно в любом случае, так что ничего страшного. Опять все пошло во тому же сценарию, что и в предыдущем случае — какие-то легкие визуалы, когда смотрел на бетонную стену в дальнем помещении офиса, она как бы «дышала», но очень незначительно, и звон в ушах.
Потом меня отвлекли от самосозерцания — приперся какой-то коммивояжер, но я был поглощен экспериментом, потому, с одной стороны, ему повезло, я ему открыл. А с другой стороны, он меня, наверное, за наркомана ебаного принял, т.к. я просто тупо отвечал «нет» на любые его вопросы, даже по поводу, бывал ли я в «Тетрисе» (это крупный торговый центр в ПТЗ). Комми ушел несолоно хлебавши, и ему, внезапно, в этом повезло, т.к. только он ушел, мне потребовалось очень срочно блевануть, аж так срочно и неожиданно, что еле добежал до сортира. Если бы он не ушел, то был бы заблеван он, его товары, и вообще нахуй все вокруг.
После того, как протошнило, легкости, как в прошлом эксперименте, не наступило, наоборот, стало как-то тяжко и погано. Дошел до диванчика, прилег. На ютубе автоматом включился какой-то исторический выпуск с Тамарой Эдельман, от ее голоса немного полегчало, и я провалился в какой-то недосон, в котором опять же были какие-то не совсем логичные фразы и незнакомые термины, запомнил только то, что все крутилось вокруг Короля в Желтом (лавкрафтовского Хастура, как я после пробуждения понял), еще в этом какие-то то ли эльджели то ли что-то похожее по звучанию, участвовали и вроде как менты, в общем, как я потом понял, мозг что-то себе сам около-лавкрафтовское конструировал из прочитанного и окружающей действительности.
Когда недосон прошел, оставалось какое-то тяжелое состояние, примерно как около-гриппозное. Прошло вот совсем недавно, и то не полностью.
Выводы не окончательные, скорее, очень промежуточные. Похоже, мухомор, очень индивидуальный гриб. Например, на
glebo@ljr и еще одного блоггера с LJR он влияет как легкий галлюциноген/энтеоген, как и на моего друга РыББу из реала. Мне не подходит в «шаманском» или «рекреационном» смысле, возможно, подойдет в более «медицинском». Заготавливаю сырье для проверки некоторых рецептов от Вишневского, и использования в микродозинге от западных исследователей.
Приехал, а тут писец дождино!

В BAT-файлах нет типа переменных, тип разрешается в каждом конкретном случае. Впрочем, это так в большинстве командных языков, в линуксовом bash тоже нельзя явно задать тип переменной.
При этом, процессор cmd не считает числом:
— Числа в системах счисления отличных от десятичной.
— Числа с плавающей точкой (действительные, дробные).
— Если есть лидирующие нули, например 00150 не распознается как число. Хотя с этим мы поборемся.
Числами считаются только целые числа в диапазоне -2147483648..2147483647.
Так как же проверить, число в переменной BAT/CMD-файла или нет? Будем разбираться.
Оставим числа в системах счисления, отличных от десятичной, а также дробные числа. Нормальных механизмов работы в BAT/CMD с ними нет, так что и не будем усложнять.
1. Включаем расширенный режим (копия) обработки команд. В Windows, начиная с XP SP2 он включен по умолчанию, но лучше явно прописывать для совместимости:
SetLocal EnableExtensions
2. Проверка на пустую переменную. Процессор BAT/CMD считает неинициализированную или пустую переменную пустой, и не задает ей значение 0, если она используется в качестве численной переменной. Так что изначально надо проверять, не пуста ли переменная.
В тестовом примере значение передается в параметре командной строки, его и проверим, а потом запишем значение во внутреннюю переменную скрипта:
rem test if no or void parameter (variable) if "%~1" == "" ( echo No arguments. Use "%~n0%~x0 <test pattern>" exit /b 1 ) set INP=%~1
%~n0%~x0 — при расширенной обработке команд %~n достает из переменной, в данном случае переменной %0 имя файла, %~x расширение с точкой. %0 — переменная, содержащая путь к BAT/CMD-файлу
3. Боремся с лидирующими нолями. Данная команда их удалит:
for /f "tokens=* delims=0" %%a in ("%INP%") do set INP=%%a
4. Эта команда сохранит, например 000100, превратив его в 100, но удалит 0 или 000..., так что если переменная после операции оказалась пустой, значит она содержала 0, надо его восстановить, дабы далее избежать ошибок:
if "%INP%" == "" (
set INP=0
)
5. Число или строка. Теперь можно определить, число или строка в переменной, произведя над ней арифметическое действие не изменяющее значение, например, умножение на 1. Сделать это можно с помощью команды set /a. Остается сравнить полученный результат с оригиналом. Если результат операции не равен оригиналу, то в переменной не число, а строка, т.к. результат арифметической операции над строкой всегда будет равен 0:
rem number or not number set /a "TINP=INP*1" if NOT %TINP% == %INP% ( echo Not number! exit /b 2 )
6. Положительное или отрицательное число. Далее остается только сравнить числа с 0 с помощью оператора IF и операций сравнения:
| Операнд сравнения | Описание |
EQU |
Равно |
NEQ |
Не равно |
LSS |
Меньше |
LEQ |
Меньше или равно |
GTR |
Больше |
GEQ |
Больше или равно |
rem number type if %INP% GEQ 0 ( echo Positive integer exit /b 0 ) if %INP% LSS 0 ( echo Negative integer exit /b 0 )