Russian Qt Forum
Ноябрь 22, 2024, 01:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запуск bat в окне консоли скрывает сообщения об ошибках  (Прочитано 23609 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Октябрь 11, 2019, 10:26 »

Коллеги, халп!
Запускаю bat файлик на винде через std::system (мне нужен detached процесс в окошке консоли).
Команда такая:
Код
Bash
start "title" "path_to_bat"
Всё работает хорошо до тех пор, пока решатели, запускаемые внутри файла не начинают выводить диалоги об ошибках (пример в attach).
Почему-то эти диалоги зачастую не показываются а в bat просто приходит ненулевой код завершения решателя.
Что можно сделать, чтобы эти сообщения не подавлялись?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Октябрь 11, 2019, 10:27 »

Если запустить тот же bat из explorer, то диалоги выводятся
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #2 : Октябрь 11, 2019, 11:19 »

Возможно, я ткну пальцем в небо, но ошибки часто выводятся не в stdout, а stderr.
Вот мой батник для сборки
Код:
make >prot.txt 2>err.txt
prot.txt будет содержать протокол (какие файлы транслируются)
err.txt - сообщения об ошибках
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Октябрь 16, 2019, 14:08 »

Интересуют не потоки ошибок, а именно диалоги с ошибками.

Решил путём вызова
Код
C++ (Qt)
system("explorer path_to_bat")
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Октябрь 23, 2019, 10:57 »

всё-таки не решил. В моём способе не работает cd из бат файла. Возвращает 0, но папка так и остаётся system32
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #5 : Октябрь 23, 2019, 11:29 »

С командой cd могут быть приколы: если указывается папка на другом диске, т.е. C:\Windows\system32 меняется на D:\Data, то предварительно надо указать букву диска.
Код:
D:
cd D:\Data
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #6 : Октябрь 23, 2019, 17:11 »

 Улыбающийся
Для этого есть ключ /D
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Октябрь 23, 2019, 21:52 »

Спасибо Улыбающийся

Про букву диска знал, но забыл - давно не пользовался вёдрами
Про ключики у cd и не знал Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.078 секунд. Запросов: 22.