
私はWindows 7のコマンドプロンプトを使用しています。次のコマンドを実行すると
"C:\Program Files\abc.exe" help > out.txt
abc.exe は、情報を表示するサードパーティ プログラムです。新しいウィンドウが開き、abc.exe ヘルプが新しいウィンドウに出力を印刷し、その後ウィンドウが閉じて元のウィンドウに戻ります。out.txt ファイルは空のままです。
abc.exe が新しいウィンドウを開かないようにするにはどうすればよいですか。out.txt にリダイレクトできるように、出力を元の同じウィンドウに表示するように強制できますか。
答え1
これを解決することができました。
Windows には、「管理者としてコマンド プロンプトを開く」というオプションがあります。その場合、新しいウィンドウは開きません。
答え2
アプリケーションがSTDOUTまたはSTDERRに出力しない可能性がありますが、これを試してください
"C:\Program Files\abc.exe" help > out.txt 2>&1
答え3
私も同じ問題を抱えていました。管理者として実行すれば問題は解決しますが、管理者以外のユーザーもこの問題が発生していたため、この回答は受け入れられませんでした。出力リダイレクトのアイデアは、管理者権限のないプロンプトからの出力をリダイレクトするため役に立ちませんでした。このプロンプトには出力がありませんでした。そのため、空のファイルが作成されます。
私の問題は、呼び出した .exe が管理者権限で実行するように構成されていたことです。起動した cmd プロンプトは管理者として実行されておらず、起動後に管理者権限で実行することはできません。そのため、コマンドを実行するために新しい管理者権限のウィンドウが起動され、瞬く間に完了して終了し、管理者権限のないプロンプトが出力なしで残ります。
解決策 A: cmd/powershell を管理者として実行します。そうすれば、同じウィンドウ内で実行できます。解決策 B: .exe を管理者として実行しないように変更して、新しい管理者特権のウィンドウを起動する必要がないようにする。これが私が選択したオプションです。