Обнаружил непонятное поведение, которое воспроизводится везде, где я пробовал: в основной версии фара (2.0.1807 х86), в текущей ночной сборке 2.0 (far2.1807bis23.x86.x64.7z), в текущей ночной сборке 3.0 (far3.2269bis.x86.x64.7z). Решил запостить свои впечатления именно в этот раздел форума, ибо не уверен, что это баг.
Написал маленькую консольную прожку на сишарпе, скомпилировал, запускаю в фаре. Аргументы командной строки специально вбил невалидные, чтобы протестировать код ошибки. Программа корректно рапортует об ошибке, смотрю %errorlevel%, а там ноль. Как так?! Несколько раз убеждаюсь, что все в порядке в коде программы, снова запускаю - снова ноль. Точно убеждаюсь, что программа действительно консольная, а не гуевая (мало ли) - все ок, консольная.
Открываю cmd.exe в отдельном окне (вне фара). Запускаю программу с невалидными аргументами, делаю echo %errorlevel% - ура, на консоль выводится 10! Протираю глаза, переключаюсь в фар, запускаю прожку - ноль.
Что я мог упустить? Почему так получается? Я не аттачил мою аппликуху и не приводил детали потому, что подозреваю, что не догоняю чего-то очевидного. Если по результатам обсуждения выяснится, что надо оформить полноценный баг репорт, с удовольствием это сделаю.
фар "съедает" код возврата программы
-
- Posts: 270
- Joined: Mon 10 Apr, 2006 00:53
- Location: станица Григорополисская
- Has thanked: 147 times
- Contact:
Re: фар "съедает" код возврата программы
xeno.by, либо пакетный файл, либо одной строкой:
Або вовсе отказаться от переменных:
Code: Select all
setlocal enabledelayedexpansion & <c:\boot.ini find.exe "Мама мыла раму" & echo !errorlevel!
Code: Select all
@ <c:\boot.ini find.exe "Мама мыла раму" && echo Yes || echo No