• 締切済み

FTPコマンドの戻り値(エラーコード)の意味

【FTPコマンドの戻り値=”2”は何のエラーを意味するのでしょうか?】 あるアプリからbatファイルを起動する仕組みを作っています。 そのbatファイル内でFTPコマンドによるファイル送信をしていますが、 FTPコマンドの戻り値が正常終了の”0”ではなく”2”となってします。 処理結果をログに出すようにしているのですがそこもうまくいっていないようです。 DOSプロンプトを起動してFTPコマンドを手で入力して行くと ステップごとには正しく動くのですが、bat起動だとだめなのです。 検索してみても「エラーコードの意味」がHitしません。 どなたか教えていただけますか? 【処理詳細を以下に記します。】 内容は、ある制御ファイル(CTL。中身は0バイト)群を FTP転送し、日付入りファイル名のログに結果を出力するだけです。 ○batファイル(引数%1には、アプリから日付が渡されます。) ftp -s:ftpcmd.txt > ftplog_%1.txt ○Txtファイル open xxx.xxx.xxx.xxx (userid) (password) cd (処理ディレクトリ) ascii prompt mput c:\FTP\*.xxx.ctl disconnect bye

みんなの回答

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

 単なる ftp コマンドのシンタックス・エラーと考えられるのですが、 いかがでしょうか。  ※ftp コマンドのシンタックス・エラーの場合、終了コードが 2 になります。

hiro_march
質問者

お礼

返事が遅れて大変申し訳ありません。 ずっと動いていたコマンドなので文法エラーではないだろう…と 思っていたのですが、勘違いでした。 ログを吐き出すファイル名をフルパスにすることで解消されました。 先日正式な実行環境で確認とれました。 ありがとうございました!

関連するQ&A

  • dosコマンドでのftp接続について

    コマンドプロンプト上でのftp接続について教えてください。 いろいろと調べて ****************************** [ftp.bat] ftp -s:ftpcmd.txt [ftpcmd.txt] open "IPアドレス" "ログイン名" "パスワード" put test.txt bye ****************************** でできることがわかりました。 しかし、上記のような方法の場合、ftpcmd.txtの中身を参照してしまうと使用者にアカウント、パスワードがわかってしまいます。 使用者にアカウント、パスワードがわからない形でコマンドプロンプト上でのftp接続ほうほうはないでしょうか。 (例えば、ftpcmd.txtを暗号化するとか…) ご教授をお願いします。

  • FTPコマンドの戻り値について

    UnixのシェルでFTPを行っていますが、 接続不可の時にエラーの戻り値を取りたいと考えています。 ただ、 OPEN XXX user aaa acount bbb get ファイル名 取得先/ファイル名 bye というシェルを実行した場合、接続先XXXが有り得ない場合、 戻り値($?)が0以外かと思っていたのですが、表示させると0になっていました。 接続できません、というメッセージは表示されるのですが。。。 戻り値でエラーを判断する方法をご存知の方、よろしく お願いします。

  • コマンドプロンプト FTPコマンドについて

    こんばんわ。 今回はコマンドプロンプトのFTPコマンドについて質問させてください。 処理概要 Windowsバッチにて、サーバA(Windows)からサーバB(UNIX)にFTPでファイルを複数送りたい その際、FTPが成功したか失敗したかをログファイルに出力したい。 以下プログラム set logDir=C:\hogehoge\log\ set settingFileName=C:\hogehoge\upload.ftp set execDate=%date:~-10,4%%date:~-5,2%%date:~-2,2% set logFileName=%logDir%log_%execDate%.txt echo FTPバッチ起動 >> "%logFileName%" cd C:\hogehoge echo FTP開始 >> "%logFileName%" ftp -s:"%settingFileName% >> "%logFileName%" upload.ftpというファイルには以下のように記述しております。 ftp open サーバIP ポート ログインID パスワード binary prompt mput *.csv bye この2種類のファイルで、FTPは出来るのですが、 どうにかして成功/失敗を判断したいです。 どなたかわかる方、ご教授お願いいたします。 補足 UNIX上のバッチ処理(Cシェル)でもファイルがあるかどうか判断していますが、 WindowsでFTP失敗の場合、メールを送りたくてこのようなバッチを作成しました。

  • Windows マシンでFTPバッチが動かない

    Windowsサーバから、UNIXサーバにFTPでファイル取得しようとすると、エラーがでてすすみません。 コマンドプロンプトで 対話的に動かす分には問題なく動作するのですが、バッチで動かすと エラーがでてしまうのです。 動かそうとしているバッチファイルとその読み込みスクリプトは以下です。 (変数部分はぼかしています) ==== myftp.bat BGN ==== set dirname=%DATE:/=% mkdir D:\master\%dirname% ftp -s:ftpcmd.txt ==== myftp.bat END ==== ==== ftpcmd.txt BGN ==== open hoge user_naem pass_word bin lcd D:\master get file.txt quit ==== ftpcmd.txt END ==== これらを動かすと、 スクリプト ファイル ftpcmd.txt を開くときにエラーが発生しました。 というエラーがでて前に進みません。 対話ベースでは、ftpcmt.txt ファイルの内容をコピペして、きちんと動くので、 何が原因がわかりかねています。 どなたか知恵を貸してください。

  • FTPのコマンド「mput」について

    FTPで、ファイルを一括して、サーバーに送りたいのですが、その際に 「mput *.* *.*」などとすると、それぞれのファイルが2回putされます。これは、仕様でしょうか。 例えば、1つのファイル「A.txt」を mput した場合と、put した場合では、下記のようになります。 <mput> ************************ ftp> mput A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.00Seconds 159232000.00Kbytes/sec. ************************ <put> ************************ ftp> put A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. ************************

  • 自動ftpバッチで転送速度をろぐに出す方法

    こんにちは windows2008で自動ftpバッチファイルを作成ししています。 自動ftpは出来るのですが、転送速度がログに出力されません。 具体的には手動でftpすると以下のように表示される「24000.00KB/秒」という部分を ログに出したいです。 200 PORT command successful. 150 Opening ASCII mode data connection for autoexec.bat. 226 Transfer complete. ftp: 24 バイトが送信されました 0.00秒 24000.00KB/秒。 そもそもログに表示させることはできないのでしょうか? お分かりの方、お教えください。 今作っているバッチファイルはこんな感じです。 ftpauto.txt ---------------- ftp -s:ftpcmd.txt>>ftp.log 2>&1 ftpcmd.txt ---------------- open XX.XX.XX.XX user-id Password bin cd / lcd C:\ put XXX disconnect bye ------------------------------------ 宜しくお願いします。

  • batファイルから起動したscrファイルの戻り値を取得する方法

    DOSのbatファイル上から、ftpのスクリプトを 起動していますが、ftpが失敗した際に戻り値を batファイルに返したいのですが、方法がわからず 困っております。どなたか教えてください。 宜しくお願いします。 test1.bat ftp -s:C:\VB\ftp_test.scr copy 命令 ftp_test.scr open xxx.xxx.xxx.xxx login pass put 命令 quit

  • コマンドプロンプトでFTPでエラー

    FTPコマンドプロンプトについてお聞きしたいです。 フォルダの中に 01.bat、01.txt、index.htmlが入っています バッチの中身は ftp -s:ftp00.txt テキストの中身は open サーバー名 ユーザー名 パスワード asc put index.html disconnect bye これを実行したら以下の様になったのですが、なにが原因なのでしょうか? スクリプト ファイル ftp00.txt を開くときにエラーが発生しました。 それともう一つ質問があるのですが、 手動でFTP情報をコマンドプロンプトに入力していったら ホスト接続完了→ユーザー名完了→パス入力のところで なぜかキーボードが入力できなくなってしまいます。 なぜでしょうか? osはvistaです。

  • プロキシサーバー経由でftpのgetを行う方法

    社内LANからプロキシサーバーを経由して、外部のサーバにあるファイルをftpでgetしようとし ています。 方法としては、定期実行するためにスクリプトで下記のようなテキスト(ftpcmd.txt)を作成し、 バッチファイル(auto.bat)でftpコマンドを実行する予定です。 <ftpcmd.txt> open xxx.xxx.xxx.xxx user1 passwd1 ascii get /logfiles/todaylog.txt quit <auto.bat> ftp -s:ftpcmd.txt ここで、質問なのですが、上記のような方法を用い、プロキシサーバー経由でftpを使ったgetを 行うには、どのように行えばいいでしょうか。または、DOSコマンドを使って、行うことは無理な のでしょうか。その場合、ほかにはどのようなやり方が考えられるでしょうか。どなたか、ご助言 いただけませんでしょうか。

  • バッチファイルにてFTPで指定したファイルを取得する

    OSはWindoswXPProです。 以下のようなBATファイルとバッチファイルを作成しました。 ---FTP.bat--- echo off ftp -s:get.ftp ---get.ftp--- open 10.0.X.X username password cd /log get log.yymmdd(実際には日付) c:\access_all_log.txt quit logというディレクトリには日次でログファイルが作成され ファイル名としてlog.yymmddと名づけられています。 やりたいことは2つあります。 1つめはftpするファイル名の日付部分をコマンドなどから 範囲指定して取得するファイルを指定できないか。 (たとえば070301~070315のファイルを一括で取得したい) 2つ目はftpでのファイル取得終了後に続いて バッチスクリプトを流したいのですが、その方法。 お分かりになる方いらっしゃいましたらよろしくお願いいたします。