Powershell、file.exe --help 出力はリダイレクトできません

Powershell、file.exe --help 出力はリダイレクトできません

ヘルプ メッセージの出力をバイナリから output.txt ファイルにリダイレクトしようとしていますが、ヘルプ メッセージが期待どおりにリダイレクトされません。いくつかの異なる解決策を試しましたが、どれも機能しませんでした。試したコマンドは次のとおりです (transcript to を試しましたが、機能しません)。

PS D:\user\drivers> wmic process call create ".\drivers.exe -h" > output.txt

PS D:\user\drivers> cat .\output.txt
Exécution (Win32_Process)->Create()

Méthode exécutée.

Paramètres de sortie :
instance of __PARAMETERS
{
        ReturnValue = 9;
};
PS D:\user\drivers> $output = Invoke-Expression ".\drivers.exe -h"
PS D:\user\drivers>
PS D:\user\drivers> $output|  Out-File -FilePath ".\output.txt"
PS D:\user\drivers> cat .\output.txt
PS D:\user\drivers> .\drivers.exe -h | Out-File -FilePath ".\output.txt"

Usage: /s /e /f <target-path>
  /s - Un-package the package in silent mode (not showing user interaction UI)
  /f - Runtime switch that overrides the default target path specified in build time
  /e - Prevent execution of default executable file specified in build time.
       Only extracting the content files to target folder(Use this with /s /f)
PS D:\user\drivers> cat .\output.txt

答え1

この出力は標準出力ではなくエラーとして送信されているようです。以下のように、代わりにstderr( 2>) をファイルにリダイレクトしてみてください。

.\drivers.exe -h 2> output.txt

または、stdoutと の両方をリダイレクトするには、次のようにしますstderr

.\drivers.exe -h 2>&1 > output.txt

出力の処理に関する詳細は以下を参照してください。リダイレクトについて

関連情報