Запретить exe-файлу открывать новое окно командной строки

Запретить exe-файлу открывать новое окно командной строки

Я нахожусь в командной строке Windows 7. Когда я запускаю следующую команду

"C:\Program Files\abc.exe" help  > out.txt

abc.exe — это сторонняя программа, которая отображает некоторую информацию. Происходит следующее: открывается новое окно, abc.exe help печатает вывод в новом окне, затем окно закрывается, и я возвращаюсь в исходное окно. Файл out.txt остается пустым.

Как запретить abc.exe открывать новое окно? Могу ли я заставить его отображать свой вывод в том же исходном окне, чтобы его можно было перенаправить в out.txt.

решение1

Мне удалось решить эту проблему.

В Windows есть опция "Открыть командную строку от имени администратора". Новое окно в этом случае не открывается.

решение2

Возможно, приложение не выводит данные в STDOUT или STDERR, но попробуйте это

"C:\Program Files\abc.exe" help  > out.txt 2>&1

решение3

У меня была та же проблема, запуск от имени администратора решил бы проблему, но это не могло быть приемлемым ответом, так как у не-администраторов тоже была эта проблема. Идея перенаправления вывода не помогла, потому что она перенаправляла вывод из приглашения без повышенных прав, в котором не было вывода. Поэтому он просто создает пустой файл.

Моя проблема заключалась в том, что .exe, который я вызывал, был настроен на запуск с повышенными правами. Командная строка, из которой я запускал, не была запущена как администратор, и ее нельзя было повысить после запуска. Поэтому она запускала новое окно с повышенными правами для запуска команды, которая завершалась в мгновение ока, а затем закрывалась, оставляя меня с моей неповышенной командной строкой без вывода.

Решение A: Запустите cmd/powershell от имени администратора. Тогда он сможет работать в том же окне. Решение B: Измените .exe так, чтобы он не запускался от имени администратора, чтобы ему не нужно было запускать новое окно с повышенными правами. Это тот вариант, который я выбрал.

Связанный контент