質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

8541閲覧

FTP転送をバッチファイルで行いたい

hinomar

総合スコア8

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2020/07/31 00:50

編集2020/07/31 01:36

お世話になります。

https://peacepopo.net/blog-entry-144.html

上記内容につきましてご教示頂きたく存じます。

【ftp.bat】

ftp -s:ftp.txt pause

【ftp.txt】

open FTPサーバー名(URL) ログインID パスワード bin prompt cd /www put ローカルの画像ファイルの場所 bye

上記バッチファイルをダブルクリックして実行しているのですがpauseまで到達せず、
1行目の「ftp -s:ftp.txt」が繰り返し表示されます。
イメージ説明

また、コマンドプロンプトからtxtの中身を順次入力し、同内容で実行はできましたが、
「cd」でフォルダに移動した後、「ftp -s:ftp.txt」を入力してEnterキーを押すとやはり同じように繰り返し表示されます。

保存はbat、txt共にTeraPadの文字コード指定保存「SHIFT-JIS」でやっております。

初歩的な質問で申し訳ございません、原因に思い当たる方
ご教示頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/07/31 01:05

> 「ftp -s:ftp.txt」でループします。 ループ、と言うのが分かりません。ループとは通常、同じ処理を繰り返すことを言います。実行後、停まったままになるということですか?それとも本当に、何度も繰り返しているように見えるのでしょうか。
hinomar

2020/07/31 01:13

画像を追加いたしました。 ご指摘ありがとうございます。
Daregada

2020/07/31 01:23

「コマンドプロンプトからは同内容で実行できました」と「上記バッチファイルを実行」の内容をもう少し詳しく説明して下さい。 コマンドプロンプトからは同内容で実行できたとのことですが、それはコマンドプロンプトで「ftp -s:ftp.txt」を入力してEnterキーを押したのか、「ftp」を実行後にftp.txtの内容を手動で入力したか、のどちらでしょうか。 また、バッチファイルを実行とは、「コマンドプロンプトでバッチファイル名を指定してEnterキーを押す」ことなのか、提示されているページと同様に「タスクスケジューラーにバッチファイルを登録して、タスクスケジューラーから実行している」のどちらでしょうか。
dodox86

2020/07/31 01:38

回答を書いていましたが、既に回答が付きましたのでコメントのみで失礼します。 バッチファイルのファイル名を「ftp.bat」から別の名前、例えば「autoftp.bat」にリネームしてください。バッチファイル「ftp.bat」を実行するとその中でまた`ftp`を実行するので、再度`ftp.bat を呼び出すかたちになっています。 ※参考にされたサイトの記事でも「ftp.bat」になっていますが、記事中のファイルアイコンを良く見ると「autoftp.bat」と違うファイル名になっていますね。
hinomar

2020/07/31 01:39

コマンドプロンプトからは「ftp」を実行後に、ftp.txtの内容を手動で入力しました。 バッチの実行は、まだタスクスケジューラーを試す段階まで行っていないので、バッチファイルをダブルクリックして行っておりました。ご指摘ありがとうございます。
hinomar

2020/07/31 01:42

dodox86さん、何度もありがとうございます。 別の名前にすれば実行が出来るのですね。ありがとうございます。
guest

回答1

0

ベストアンサー

バッチファイル名がftp.batとなっているのがまずいです。
コマンドプロンプトで実行した場合、ftp.exeより先にカレントディレクトリにあるftp.batが見つかりますので、バッチファイルの内部で、さらにバッチファイルを実行しようとします。

なので、

bat

1ftp.exe -s:ftp.txt

としてやればループにはならないです。もしくはバッチファイル名をftp.bat以外の名前にしてやれば良いです。

投稿2020/07/31 01:36

編集2020/07/31 01:38
KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hinomar

2020/07/31 01:44

ありがとうございます。ファイルの名前を変えたら解決しました。 記述を変える方法もあるのですね。覚えておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問