Есть ли способ указать DOORS использовать текущее окно командной строки в качестве интерактивного окна при выполнении в пакетном режиме?
Например, если у меня есть hello.dxl
, который выглядит как
print("Hello world")
и Run.bat
который выглядит как
"C:\Program Files\IBM\Rational\DOORS\9.6\bin\doors.exe" -u test -pass testPass -b hello.dxl -W
В настоящее время он открывает новое окно, печатает «Hello World», а затем закрывает окно (оно закрывает его из-за -W
). Есть ли способ перенаправить этот вывод в окно командной строки, которое было открыто для запуска пакетного файла?
Консольного варианта Doors.exe не существует, и, насколько я знаю, нет возможности дать какой-то дескриптор конкретному окну подсказки и использовать, например. OLE Automation для печати в это окно, так что, в принципе, нет, это невозможно.
Обходной путь, который мы используем для этого требования, состоит в том, чтобы иметь пакетный файл, который
cout
в этот файлtype
содержимое временного файла в вызывающем пакете и, при необходимости, удалить его.PS: согласно https://www.ibm.com/mysupport/s/question/0D50z00006HIM4oCAH/doors-print-redirect-tutorial-for-print-cout-and-logfiles, по-видимому, раньше можно было перенаправить STDOUT/STDERR на конкретный файл, но не в последних версиях DOORS.
Спасибо за это. Просто поигравшись, я обнаружил, что в своем DXL я могу просто сделать
cout << "Hi"
, а в своем пакете я могу просто поставить> Temp.txt
, и он выведет его в файл без необходимости играть с переменными среды.