Intereting Posts
Вызов сценария не по тому же пути Настольная среда для моей бабушки Ошибка сегментации с диалоговым окном Различные командные запросы для пользователя и пользователя root Удаление устаревшей qgroup возникает при постепенном резервном копировании раздела btrfs на внешний hdd Запуск команды источника с -x для отладки Проверка строки с использованием classа регулярных выражений posix Поиск файлов для строки и если найден, проверьте, существует ли файл с парным именем в том же каталоге Может ли LVM отмечать / избегать плохих блоков? Как я могу запустить процесс из состояния сна через сигнал или / proc? Ошибка командной строки flock на xunbuntu 16.04 – непонятно, почему Squid не блокирует не-ascii domans определить (в скрипте), если команда запускается в терминале (из файла рабочего стола?) fail2ban log parsing слишком медленный на малины Pi – варианты? dash: строка синтаксического анализа на две переменные

Перенаправить stdout программы командной строки Windows под вином

Я запускаю программу командной строки Windows (которую я не могу сделать доступной) с вином. По-видимому, он пишет что-то в stdout, и я пытаюсь захватить этот вывод, но я не могу перенаправить его.

Независимо от того, перенаправляю ли я stdout или stderr в файл, вывод программы все еще печатается на консоли и не записывается в файл. Когда я перенаправляю stderr, выход вина уходит, но выход программы остается напечатанным на экране.

wine program.exe > out # File is empty, program output printed on screen wine program.exe 2> out # Wine output gets redirected to file, program output still printed on screen 

Если я перенаправляю оба, вывод не выводится на экран и не записывается в файл.

Изменить: в Windows поведение похоже, но при перенаправлении обоих все по-прежнему печатается на экране.

Вот несколько примеров с полным выходом.

 $ wine program.exe fixme:winediag:start_process Wine Staging 1.9.23 is a testing version containing experimental patches. fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. output by program.exe fixme:msvcrt:__clean_type_info_names_internal (0x100aaa54) stub 

Когда я пытаюсь перенаправить вывод, это происходит:

 $ wine program.exe > out 2>&1 $ cat out fixme:winediag:start_process Wine Staging 1.9.23 is a testing version containing experimental patches. fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. fixme:msvcrt:__clean_type_info_names_internal (0x100aaa54) stub 

Т.е., консольный вывод программы полностью отсутствует. Программа все еще отлично работает и записывает некоторые файлы, которые она должна писать. В качестве проверки я сделал то же самое с pngcrush, и я получил то, что ожидал. Без перенаправления:

 $ wine pngcrush_1_8_10_w32.exe test.png out.png fixme:winediag:start_process Wine Staging 1.9.23 is a testing version containing experimental patches. fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. | pngcrush-1.8.10 | Copyright (C) 1998-2002, 2006-2016 Glenn Randers-Pehrson | Portions Copyright (C) 2005 Greg Roelofs | This is a free, open-source program. Permission is irrevocably | granted to everyone to use this version of pngcrush without | payment of any fee. | Executable name is pngcrush_1_8_10_w32.exe | It was built with bundled libpng-1.6.26 | and is running with bundled libpng-1.6.26 | Copyright (C) 1998-2004, 2006-2016 Glenn Randers-Pehrson, | Copyright (C) 1996, 1997 Andreas Dilger, | Copyright (C) 1995, Guy Eric Schalnat, Group 42 Inc., | and bundled zlib-1.2.8.1-motley, Copyright (C) 1995 (or later), | Jean-loup Gailly and Mark Adler, | and using "clock()". | It was compiled with gcc version 4.8.0 20121015 (experimental). Recompressing IDAT chunks in test.png to out.png Total length of data found in critical chunks = 431830 Critical chunk length, method 1 (ws 15 fm 0 zl 4 zs 0) = 495979 Critical chunk length, method 2 (ws 15 fm 1 zl 4 zs 0) > 495979 Critical chunk length, method 3 (ws 15 fm 5 zl 4 zs 1) = 495354 Critical chunk length, method 6 (ws 15 fm 5 zl 9 zs 0) = 457709 Critical chunk length, method 9 (ws 15 fm 5 zl 2 zs 2) > 457709 Critical chunk length, method 10 (ws 15 fm 5 zl 9 zs 1) = 451813 Best pngcrush method = 10 (ws 15 fm 5 zl 9 zs 1) = 451813 (4.63% critical chunk increase) (4.63% filesize increase) CPU time decode 4.407583, encode 17.094248, other 4294967296.000000, total 17.180143 sec 

С перенаправлением:

 $ wine pngcrush_1_8_10_w32.exe test.png out.png > out 2>&1 $ cat out fixme:winediag:start_process Wine Staging 1.9.23 is a testing version containing experimental patches. fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. | pngcrush-1.8.10 | Copyright (C) 1998-2002, 2006-2016 Glenn Randers-Pehrson | Portions Copyright (C) 2005 Greg Roelofs | This is a free, open-source program. Permission is irrevocably | granted to everyone to use this version of pngcrush without | payment of any fee. | Executable name is pngcrush_1_8_10_w32.exe | It was built with bundled libpng-1.6.26 | and is running with bundled libpng-1.6.26 | Copyright (C) 1998-2004, 2006-2016 Glenn Randers-Pehrson, | Copyright (C) 1996, 1997 Andreas Dilger, | Copyright (C) 1995, Guy Eric Schalnat, Group 42 Inc., | and bundled zlib-1.2.8.1-motley, Copyright (C) 1995 (or later), | Jean-loup Gailly and Mark Adler, | and using "clock()". | It was compiled with gcc version 4.8.0 20121015 (experimental). Recompressing IDAT chunks in test.png to out.png Total length of data found in critical chunks = 431830 Critical chunk length, method 1 (ws 15 fm 0 zl 4 zs 0) = 495979 Critical chunk length, method 2 (ws 15 fm 1 zl 4 zs 0) > 495979 Critical chunk length, method 3 (ws 15 fm 5 zl 4 zs 1) = 495354 Critical chunk length, method 6 (ws 15 fm 5 zl 9 zs 0) = 457709 Critical chunk length, method 9 (ws 15 fm 5 zl 2 zs 2) > 457709 Critical chunk length, method 10 (ws 15 fm 5 zl 9 zs 1) = 451813 Best pngcrush method = 10 (ws 15 fm 5 zl 9 zs 1) = 451813 (4.63% critical chunk increase) (4.63% filesize increase) CPU time decode 4.339310, encode 17.137527, other 4.294083, total 17.182100 sec 

Что может быть причиной того, что он не работает для другой программы?

винный stdout stderr io-redirection