• 締切済み

DOSプロンプトからFTP接続処理を自動化したい

iPhoneからのため、カテゴリ違いご容赦ください。 Windows7です。 下記の処理をバッチスクリプトにて自動化したいです 1.DOSプロンプトからFTPサーバへFTP接続 2.FTPプロンプトからDOSプロンプトに戻る(切断ではなく、FTP接続を保ったまま) 3.以降にも自動化したい処理はありますが、今回は質問用のため省略します 2.を実現する方法として、FTPプロンプトで"! [コマンド]"が使えるとのことだったので、 それを利用して作成したものを実行したところ、 2.を実行し終えたところでバッチが止まってしまいます。 (フリーズ・操作不能ではなく、プロンプトのままユーザからの入力待ち状態) 何故このようになってしまうのでしょうか。 また、2.より先も自動化するためにはどう修正すればいいでしょうか。 ただし、今回は環境上、DOSコマンドとFTPサーバのftpコマンド以外は使用できません。 (その代わり、多少強引でも構いません)

みんなの回答

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>何故このようになってしまうのでしょうか。 バッチファイルを処理しているシェル(コマンドプロンプト)とは別のシェルを起動しているからです。 起動した別のシェルは別のシェルで実行中のバッチファイルのことなんて関与せずに動作しますから、 ユーザーからの指示待ちになるのは当然かと。 >ただし、今回は環境上、DOSコマンドとFTPサーバのftpコマンド以外は使用できません。 であれば、希望する動作は無理かと思われます。 Windowsのftpコマンドでしたら-s スイッチで実行するコマンドなどを列挙して自動化は可能でしょうが…… >2.FTPプロンプトからDOSプロンプトに戻る(切断ではなく、FTP接続を保ったまま) というのは無理かと。 # cygwin入っている環境だとftpコマンドがcygwinのものになったり……

関連するQ&A

  • VBSでDOSプロンプト

    諸事情がありVBSでDOSプロンプトの制御をしたいのです。 スクリプトを実行したらいくつかのDOSコマンドを処理して結果を表示する よくあると思うんですがYes/Noで聞かれるような処理もつけたいのです。 プロンプト起動まではできたのですがコマンドをどのように渡せばいいのかが わかりません。 いろいろ調べては見たのですが・・・ よろしくお願いいたします。

  • DOSプロンプトからFTPのスクリプトバッチが起動できない

    Win2000Proです。 以下のようなBATファイルとスクリプトバッチファイルを作成しました。 ---FTP.bat--- (1)pause (2)ftp -n -s:aaa.txt (3)pause ---aaa.txt--- op localhost user user pass ls close quit このBATファイルを実行すると(1)(2)文の無限ループになってしまい 肝心のftpコマンドは実行されません。 DOSプロンプトから手入力で入力すると実行はできます。 また、BATファイル自体、 (1)pause (2)dir (3)pause のように書き換えると問題なく実行できます。 (1)pause (2)ftp (3)pause のように書き換えても同じくループされます。 わかる方いらっしゃいますでしょうか? よろしくお願いします。

  • コマンドプロンプトのバッチについて

    WindowsのDOSなどのコマンド処理をするバッチファイルについて ですが、DOSからDB(OracleやSQL Serverなど)を起動させるバッチがあって、DBに入ってからSQLのコマンドなどを自動でさせるバッチって 何か方法はないのでしょうか?? DOS → DB起動後、自動でコマンドで動かしたいです。 細かくいうとWindowsのDOSではなくなるので、 動かなくなると思います。

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

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

  • DOSプロンプトについて

    WIN2000です。 よろしくお願いします。 何日か前まで使えていたDOSプロンプトですが、 使えなくなってしまいました。 ping、ipconfig、helpなど 何を入力しても 「内部コマンドまたは外部コマンド。 操作可能なプログラムまたはバッチファイル として認識されていません」 とのエラーが返ってきています。 これはどのような原因が考えられますでしょうか? よろしくお願いします。

  • DOS窓を自動で閉じるには

    Win2000です。 Aというプログラムからバッチファイルを起動し、 そのバッチからBというプログラムを実行します。 このとき、MS-DOSコマンドプロンプトのウィンドウは、 Bプログラムが終了しないと自動で閉じません。 これをバッチの処理が完了後ただちに閉じたいのですが、 その方法を教えてください。 Win9xではプロパティで設定できたのですが...

  • コマンドプロンプト 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失敗の場合、メールを送りたくてこのようなバッチを作成しました。

  • コマンドプロンプトからftpコマンドを打つ

    お世話になります。 コマンドプロンプトからftpコマンドを使ってファイルをアップロードしようと思います。 ですが、ftpとコマンドをコマンドプロンプト内で打つと、 「’ftp’は、内部コマンドまたは外部コマンド、 操作可能なバッチファイルとして認識されていません。」 と表示されます。 打ったコマンド: C:\DocumentAndSetting>ftp IPアドレス 調べてみたのでですが、原因がわからず、質問させていただいた次第です。 どなたかアドバイスお願いします。

  • コマンドプロンプトとDOSプロンプトの違い

    最近のOSにはDOSプロンプトがなくなり、コマンドプロンプトがふぞくしていますが、具体的にはどのような違いがあるのですか? 私はプロンプトにてプログラムのコンパイルから実行をしているだけなので、違いがよくわからないのです。よろしくお願いします。 そもそもDOSプロンプトとはどのような目的で作られたのでしょう?

  • DOSプロンプトのコマンドが動作しません。教えてください。

    DOSプロンプトのコマンドが動作しません。教えてください。 o.5975247の続きの者ですが、DOSプロンプトからあらゆる種類のコマンドが使えない状態になっています(自分自身で知っている限りのDOSコマンドを打ちこんでみた)。 DOSコマンドを入力した結果は、以下のような表示が出ます。 `コマンド名`は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。 何とか対応の仕方をアドバイス願います。