バッチで今日の日付のCSVファイルをFTPサーバにアップする方法が知りたいです。


環境はwindows XPです。

以下のコードを[ftp -n < filename]と実行してもだめでした。

filename
---------------------------------------------------------------
set csvfile=%date:~-10,4%%date:~-5,2%%date:~-2,2%.csv
open サーバ名
user ユーザ パスワード
bin
prompt
cd ./www/csv_upload
lcd C:\csv
put %csvfile%
quit
---------------------------------------------------------------

エラー内容は

%csvfile%: File not found

と、FTP接続する前に行った、csvfileという変数が生きてないようです。

「今日の日付のCSVファイルをFTPサーバにアップする」
あるいは
「指定ディレクトリから最新のファイルをCSVをFTPサーバにアップする」
これを実現するためのコマンドを教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/29 08:34:36

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

setはbatコマンドでありftp.exe実行下では使えません。

対応としてはbatにてftpコマンドファイル(仮にftp.txtとしました)を作成して、
ftp.exe実行時にパラメータとして付与するという形になります。

下記一例

set csvfile=%date:~-10,4%%date:~-5,2%%date:~-2,2%.csv
echo open サーバ名 > ftp.txt
echo user ユーザ パスワード>> ftp.txt
echo bin >> ftp.txt
echo prompt >> ftp.txt
echo cd ./www/csv_upload >> ftp.txt
echo lcd C:\csv >> ftp.txt
echo put %csvfile% >> ftp.txt
echo quit >> ftp.txt
ftp -s:ftp.txt
del ftp.txt
他1件のコメントを見る
id:windofjuly

最後の部分で間違えてました。すみません。

2012/11/29 08:36:49
id:ruijio

了解しましたありがとうございます。

2012/11/29 08:37:58
  • id:taknt
    put %csvfile%

    このまんま 実行されてるってことかな?

    csvfileを変数にしないで そのまま 記述したらどう?
  • id:ruijio
    コメントありがとうございます。
    変数使わずに下記のようにしてもだめでした。

    put %date:~-10,4%%date:~-5,2%%date:~-2,2%.csv

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません