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

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

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

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

4回答

6862閲覧

batファイル のftpの時の>>の処理がわからない

amaguri

総合スコア227

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2017/01/13 07:10

batファイルにて調べながらではあるのですが
ftpコマンド

copy ファイルパス/ファイル名① ファイルパス/ファイル名② >NUL echo get ファイルパス/ファイル名③ ファイルパス/ファイル名④ >>ファイル名⑤ echo quit >>ファイル名② ftp -s:ファイル名② > ログファイル

というようなコードがかかられているのですが
読みといているのですが

copy ファイル名① を ファイル名②にコピーをし、出力結果を表示しない。 echo get ファイル名③ を ファイル名④に送る。 >> ファイル⑤を??? echo quit ftpコマンド終了 >> ファイル名②を??? ftp -s:ファイル名② ??? > ログファイル

調べてみているのですが
echo get、echo quitの>>の部分と
ftp -s:ファイル名>ログファイル名の部分が
がよくわかりません。

どのような処理を行っているか流れを教えていただけください。

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

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

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

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

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

guest

回答4

0

1.copy ファイルパス/ファイル名① ファイルパス/ファイル名② >NUL

copy ファイル名① を ファイル名②にコピーをし、出力結果を表示しない。
これで正しいです。

2.echo get ファイルパス/ファイル名③ ファイルパス/ファイル名④ >>ファイル名⑤
「get ファイル名③ を ファイル名④に送る。」って文言をファイル⑤に追記していきます。(ログですね)

3.echo quit >>ファイル名②
ファイル名②の末尾にquitの文言を追加しています。

4.ftp -s:ファイル名② > ログファイル
ftpでファイル名②に書かれた処理を実行して、ログファイルに書き出します。

FTP :
https://technet.microsoft.com/en-us/library/bb490910.aspx
もしくはftp /?

ってところでしょうか。 >> は追記ですよ
”二重終わり山かっこは、ファイルが存在する場合は、コマンドの出力をファイルに付加するために使用されます。ファイルが存在しない場合は、新規にファイルが作成されます。次の例は、二重終わり山かっこの使用方法を示したものです。Get-TransportRulePredicate >>c:\out.txt”

https://technet.microsoft.com/ja-jp/library/bb123552(v=exchg.150).aspx

投稿2017/01/13 07:27

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

amaguri

2017/01/13 07:36

回答ありがとうございます! 指摘いただきました間違いですがまさにその通りでした。 みなさんにたくさん回答していただきとてもわかりやすかったです! ありがとうございます。
guest

0

ベストアンサー

全体の処理の前に、2行目ですが

echo get ファイルパス/ファイル名③ ファイルパス/ファイル名④ >>ファイル名②

の間違いだったりしませんか?

以下、処理の流れです。

【1行目】
ファイル名① を ファイル名②にコピーをし、出力結果を表示しない。

【2行目】
"get ファイルパス/ファイル名③ ファイルパス/ファイル名④"という文字列を「ファイル名⑤」に追記している。

【3行目】
"quit"という文字列を「ファイル名②」に追記している。

【4行目】
ftpコマンドのスクリプトとして「ファイル名②」を読み込ませ実行、出力を「ログファイル」を新規作成して書き込み。

処理の流れと「ファイル名⑤」が利用されている形跡がないので、2行目が間違っているのではないかと思う次第です。

リダイレクト記号の意味は以下の通りです。

「>>」 コマンドの出力を指定したファイルに「追記」。ファイルが存在しない場合は新規作成。
「>」 コマンドの出力を指定したファイルに「新規作成して書き込み」。ファイルが存在している場合、以前の内容は失われる。

「ftp -s:<ファイル名>」 <ファイル名>に記載されている内容のftpコマンドを自動的に実行する。(ftpのスクリプト)

投稿2017/01/13 07:23

編集2017/01/13 07:28
ynakano

総合スコア1894

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

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

amaguri

2017/01/13 07:36

回答ありがとうございます! 指摘いただきました間違いですがまさにその通りでした。 みなさんにたくさん回答していただきとてもわかりやすかったです! ありがとうございます。
guest

0

echo [文字列] >> ファイル名 は、文字列をファイルに追記する、という意味になります。
※ > ファイル名だと上書きになります

そして ftp -s は、ftp のコマンド文字列を、指定したファイルから読み取って逐次処理させる、というものです。

まとめると上のコードは、
ftpサーバへのログイン処理を行うためのスクリプトテンプレート(ファイル名①)をコピーして、
echo の2行を使って ファイルゲットして終わるためのコマンドを追加し(※)、
ftp コマンドにそのスクリプトファイルを渡して自動的に処理させる(処理の経過はログファイルに出力させる)

ものです。
※2行目の echo get ... >> ファイル名⑤ は、ファイル名② の間違いだと思います

投稿2017/01/13 07:30

tacsheaven

総合スコア13703

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

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

amaguri

2017/01/13 07:37

回答ありがとうございます! 指摘いただきました間違いですがまさにその通りでした。 みなさんにたくさん回答していただきとてもわかりやすかったです! ありがとうございます。
guest

0

日本語がところどころおかしいですが... まあ、質問そのものには影響がないのでスルーしますが。

コマンドライン ( コマンドプロンプト, ターミナル ) で使われている

アングルブラケット (*1) は "リダイレクト" といわれるようです。

*1:
Angle Brackets。 山形括弧。記号">" や "<" のこと。

基本的に

"<" は 右側のファイルから読み込んで 左側のファイルにコマンドライン引数として渡す ものです。

">" は 左側の実行ファイルやコマンドの実行結果を 右側のファイルに書き込む ものです。

">>" は ">" の追加書き込みバージョン。

たとえば、

DEL abc.jpg > result.txt

とやると abc.jpg を削除した結果 ( "1件のデータを削除しました" だと思う... ) が result.txt に書き込まれます。

しかし、

DEL abc.jpg > result.txt
DEL xyz.jpg > result.txt

と複数書き込んでも

result.txt には

"1件のデータを削除しました"

としか書き込まれません。

下に追加していく場合は、 ">>" を使います。

DEL abc.jpg > result.txt
DEL xyz.jpg >> resul.txt

みたいにする。

詳しくは、「コマンドプロンプト リダイレクト」等で検索。

投稿2017/01/13 07:29

BeatStar

総合スコア4958

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

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

amaguri

2017/01/13 07:37

回答ありがとうございます! みなさんにたくさん回答していただきとてもわかりやすかったです! ありがとうございます。
amaguri

2017/01/13 07:52

すみません アングルブラケットが >> になる時はあり得るのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問