環境は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サーバにアップする」
これを実現するためのコマンドを教えてください。
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
このまんま 実行されてるってことかな?
csvfileを変数にしないで そのまま 記述したらどう?
変数使わずに下記のようにしてもだめでした。
put %date:~-10,4%%date:~-5,2%%date:~-2,2%.csv