Windows Vista および Windows Server 2008 の FTP コマンドの標準出力結果を正しくファイルにリダイレクトできない

現象

Windows Vista、および Windows Server 2008 の FTP コマンド (ftp.exe) で、FTP コマンドの標準出力結果をファイルにリダイレクトしようとすると、一部の出力結果を正しくリダイレクトできない場合があります。

なお、コマンド プロンプトには正しい出力結果が表示されます。


Windows 7 および Windows Server 2008 R2 では、ファイルリダイレクトの際に WriteConsole() 関数ではなく WriteFile 関数を使用するように仕様変更されたため、この現象は発生しません。

原因

FTP コマンドでは、コマンド実行結果を WriteConsole() 関数で出力しています。しかし、この WriteConsole() 関数では、ファイルやパイプへのリダイレクトを考慮していないため、ファイルへのリダイレクトが失敗します。



WriteConsole 関数 については、次のマイクロソフト Web サイトを参照してください。

状況

この動作は仕様です。

詳細

問題の再現手順

  1. メモ帳を起動し、以下のコードを入力して、ファイル名を ftpget.txt にしてファイルを保存します。

    open 1.1.1.1
    anonymous
    password
    get File.txt C:\File.txt
    bye
  2. コマンド プロンプトを起動します。
  3. 以下のコマンドを実行します。

    ftp -i -s:ftpget.txt > output.txt

結果

output.txt ファイル内のコマンド出力結果の一部 (転送速度やエラーメッセージなど) が正しくリダイレクトされません。
プロパティ

文書番号:2028457 - 最終更新日: 2016/10/04 - リビジョン: 1

フィードバック