1

Javascript で ActiveXObject を使用します。

var shell = new ActiveXObject("WScript.Shell");

exec = shell.exec('cmd /c ftp -i -A -s:file.ftp host);

var output = exec.StdOut.ReadAll();

ファイルがサーバーに既に存在するため、予想されるエラー「ファイルを作成できませんでした」が表示されます。ここではすべて問題ありません。ただし、出力にはftpのエラー コードは表示されませんが、Run メソッドでは表示されます (553 Could not create file)。

Run メソッドは使用しません。可能な出力は、クライアント マシン上のファイルに出力をリダイレクトすることだけだからです。

私を信じてください、私はたくさんのウェブサイトを読みました(Run、ExecのWindows公式の説明を含む)

WScript.Shell.Exec コマンドを使用して ftp コマンドのエラー コードを取得するにはどうすればよいですか?

より詳しい情報:

exec.StdOut.ReadAll() 出力 ->

"bin
cd my_dir/
mput file_path file_path
Could not create file.
Could not create file.
quit"

WScript.shell.run からの出力ファイル ->

ftp> bin
200 Switching to Binary mode.
ftp> cd my_dir/
250 Directory successfully changed.
ftp> mput file_path file_path
200 PORT command successful. Consider using PASV.
553 Could not create file.
200 PORT command successful. Consider using PASV.
553 Could not create file.
ftp> quit
221 Goodbye.
4

1 に答える 1

2

わかりました、8年前の投稿で解決策を見つけました。( http://computer-programming-forum.com/61-wsh/813f07658378176c.htm )

Exec メソッドを使用して ftp コマンドから完全な出力を取得するには、-v オプションを ftp コマンドに追加する必要があります。魅力のように機能します。

var shell = new ActiveXObject("WScript.Shell");
exec = shell.exec(cmd /c ftp -i -v -A -s:file.ftp host);
var output = exec.StdOut.ReadAll();
于 2013-08-30T09:35:19.670 に答える