2

ftpスクリプトの出力をtxtファイルにリダイレクトしようとしています。ファイルの終わりに向かって、次の形式のftp出力が見つかると思います。

#this is a part of the complete output after running ftp script via perl
226 Transfer complete
ftp: 100000000 bytes sent in 14.81Seconds 6753.56Kbytes/sec.
ftp> bye

これは、コマンドがコマンドプロンプトで実行されたときに取得されるものです。しかし、これの代わりに、出力をtxtファイルにリダイレクトすると次のようになります。

226 Transfer complete
ftp: 100000000 bytes sent in Seconds Kbytes/sec.
ftp> 14.816753.56bye 

完全を期すために、私はperlを介してftpスクリプトを実行し(system( "ftp -s:script.txt");を使用)、コマンドラインで「>」を使用してその出力を取得しています。誰かがそれがうまくいかないことを説明してもらえますか?

ありがとう

4

1 に答える 1

0

ftp アプリが「ftp: 100000000 バイトが秒単位で送信されたキロバイト/秒」と書き込んだ後、カーソルを「秒」と「キロバイト/秒」の直前に戻します。それぞれ「14.81」と「6753.56」と書きます。出力をファイルにリダイレクトすると、カーソル移動 API 呼び出しが機能せず、これらの番号が次の行の末尾に追加されます。

(Windows ftp アプリのコードは見たことがありませんが、数年前に書いたプログラムの場合、同じ問題がありました。)

于 2012-06-11T14:14:51.047 に答える