プロが教えるわが家の防犯対策術!

iPhoneからのため、カテゴリ違いご容赦ください。
Windows7です。
下記の処理をバッチスクリプトにて自動化したいです

1.DOSプロンプトからFTPサーバへFTP接続
2.FTPプロンプトからDOSプロンプトに戻る(切断ではなく、FTP接続を保ったまま)
3.以降にも自動化したい処理はありますが、今回は質問用のため省略します

2.を実現する方法として、FTPプロンプトで"! [コマンド]"が使えるとのことだったので、
それを利用して作成したものを実行したところ、
2.を実行し終えたところでバッチが止まってしまいます。
(フリーズ・操作不能ではなく、プロンプトのままユーザからの入力待ち状態)

何故このようになってしまうのでしょうか。
また、2.より先も自動化するためにはどう修正すればいいでしょうか。

ただし、今回は環境上、DOSコマンドとFTPサーバのftpコマンド以外は使用できません。
(その代わり、多少強引でも構いません)

A 回答 (1件)

>何故このようになってしまうのでしょうか。



バッチファイルを処理しているシェル(コマンドプロンプト)とは別のシェルを起動しているからです。
起動した別のシェルは別のシェルで実行中のバッチファイルのことなんて関与せずに動作しますから、
ユーザーからの指示待ちになるのは当然かと。

>ただし、今回は環境上、DOSコマンドとFTPサーバのftpコマンド以外は使用できません。

であれば、希望する動作は無理かと思われます。

Windowsのftpコマンドでしたら-s スイッチで実行するコマンドなどを列挙して自動化は可能でしょうが……
>2.FTPプロンプトからDOSプロンプトに戻る(切断ではなく、FTP接続を保ったまま)
というのは無理かと。
# cygwin入っている環境だとftpコマンドがcygwinのものになったり……
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!