/var/log

技術系のあれこれ。※内容は個人の発言であり、所属する組織を代表するものではありません。

Windowsバッチでftpによるファイルupload

たまにはWindowsのバッチでも作ってみるかということで作ってみた.
なんかソースコードとしてきたないので少し修正したほうがいいかも...

@echo off
rem --------------------------------------------------------
rem ユーザ設定
rem --------------------------------------------------------
rem ログインサーバ名
set server=xxxxxxxxx

rem ログインユーザ名
set user=xxxx

rem ログインパスワード
set password=XXXXXXX

cd /d %~dp0

set basedir=%~dp0

rem ローカルのHTMLディレクトリ
rem set path_local_html=%basedir%upload_dir
set path_local_html=upload_dir
echo %path_local_html%

rem ローカルのログ保存ディレクトリ
set path_local_log=%basedir%log
echo %path_local_log%

rem リモートのHTMLディレクトリ
set path_remote_html=ftp_test_dir
echo %path_remote_html%

rem ftpスクリプト一時ファイル
set ftplogin=ftp_login.tmp
set ftplogout=ftp_logout.tmp
set ftpupload=ftp_upload.tmp
set ftpbat=ftp_pupdate.tmp


rem --------------------------------------------------------
rem ログ設定
rem --------------------------------------------------------
rem 日付を得る
set datei=%DATE:/=-%
set datef=%datei:-=%

rem 時刻を得る
set timef=%TIME::=%
set timef=%timef:~0,4%

rem ログ保存場所決定
set fpath=%path_local_log%
echo %fpath%

rem ログ保存ディレクトリ作成
mkdir "%fpath%"

rem 保存場所へ移動
cd /d "%fpath%"
echo pwd is "%~dp0"

rem --------------------------------------------------------
rem FTPコマンド ログイン
rem --------------------------------------------------------
rem ログインユーザ名入力
echo ばしょ"%fpath%\%ftplogin%"
echo %user%> "%fpath%\%ftplogin%"

rem ログインパスワード入力
echo %password%>> "%fpath%\%ftplogin%"

rem バイナリモードへ変更
echo bin>> "%fpath%\%ftplogin%"

rem Yes/No確認をスキップ
echo prompt>> "%fpath%\%ftplogin%"

echo ログインシェルだん

rem --------------------------------------------------------
rem FTPコマンド ログアウト
rem --------------------------------------------------------
rem ログアウト
echo bye> "%fpath%\%ftplogout%"

rem ftpセッションの終了
echo close>> "%fpath%\%ftplogout%"

echo ログアウトだん

rem --------------------------------------------------------
rem FTPコマンド ファイルアップデート
rem --------------------------------------------------------
rem ここは利用環境に合わせて書き換えてください。

echo lcd %path_local_html%> "%fpath%\%ftpupload%"
echo cd %path_remote_html%>> "%fpath%\%ftpupload%"
echo put index.html>> "%fpath%\%ftpupload%"

rem echo lcd %path_local_html%\win>> "%fpath%\%ftpupload%"
rem echo cd %path_remote_html%/win>> "%fpath%\%ftpupload%"
rem echo mput *.html>> "%fpath%\%ftpupload%"

echo FTPコマンドファイルだん

rem --------------------------------------------------------
rem FTPスクリプト 作成
rem --------------------------------------------------------
echo open %server%> "%fpath%\%ftpbat%"
type %ftplogin%>> "%fpath%\%ftpbat%"
type %ftpupload%>> "%fpath%\%ftpbat%"
type %ftplogout%>> "%fpath%\%ftpbat%"

echo FTPスクリプトだん


rem --------------------------------------------------------
rem FTPスクリプト 実行
rem --------------------------------------------------------
rem cd "%fpath%"
cd "%basedir%"
rem echo aaa>test.log
echo "%ftpbat%"
echo "%fpath%\%datef%_%timef%.log"
ftp -s:"%fpath%\%ftpbat%">>"%fpath%\%datef%_%timef%.log"
echo %errorlevel%
rem ログ保存が必要なければ 以下を利用してください
rem ftp -s:%ftpbat%

rem --------------------------------------------------------
rem 後処理
rem --------------------------------------------------------
rem del %ftplogin%
rem del %ftplogout%
rem del %ftpupload%
rem del %ftpbat%

cd %path_local_html%

:end
pause

参考:http://es.rojo.jp/win/es_win04.html