2013.
03.
30
14:55:03
sitemap.xmlをローカル環境で作成して
それをFTPでサーバに上げるってな作業を
自分ところのWebサイトでやっているのですが、
いちいちFTPクライアントを起動するのが面倒でしてね。
バッチファイルにしちまうかーってのがきっかけです。
ほんでWindowsのバッチファイルでFTPを実行する方法ですが、
多分これから書くのが一番簡単だと思います。
まずFTPで打つコマンドをべちべち書いたテキストファイルを用意します。
中身はこんな感じφ(--)
ほんで、バッチファイルではftpコマンドを使って
作成したテキストファイルを読み込みます。
コマンドはこんな感じφ(--)
これだけ\(--)/
なのですが、いまいちイメージできないと思いますので
私が実際に作成したバッチファイルを載せておきますね。
こんな感じですφ(--)
■ftp.txt
■wa3_ftp.bat
ここで一つ大事な注意点があります(--)b
バッチファイルの名前は絶対に「ftp.bat」にしないでください。
バッチファイルの名前を「ftp.bat」にすると
のコマンド実行時に再帰的に自分を呼び出して無限ループします。
ご注意ください。
完了\(--)/
それをFTPでサーバに上げるってな作業を
自分ところのWebサイトでやっているのですが、
いちいちFTPクライアントを起動するのが面倒でしてね。
バッチファイルにしちまうかーってのがきっかけです。
ほんでWindowsのバッチファイルでFTPを実行する方法ですが、
多分これから書くのが一番簡単だと思います。
まずFTPで打つコマンドをべちべち書いたテキストファイルを用意します。
中身はこんな感じφ(--)
open [接続ホスト]
[ユーザ名]
[パスワード]
bin(もしくはasc)
[何かやりたい処理]
disconnect
bye
[ユーザ名]
[パスワード]
bin(もしくはasc)
[何かやりたい処理]
disconnect
bye
ほんで、バッチファイルではftpコマンドを使って
作成したテキストファイルを読み込みます。
コマンドはこんな感じφ(--)
ftp -s:[テキストファイル名]
これだけ\(--)/
なのですが、いまいちイメージできないと思いますので
私が実際に作成したバッチファイルを載せておきますね。
こんな感じですφ(--)
■ftp.txt
open [接続ホスト]
[ユーザ名]
[パスワード]
bin
cd ./public_html
prompt
mput sitemap.xml
prompt
disconnect
bye
[ユーザ名]
[パスワード]
bin
cd ./public_html
prompt
mput sitemap.xml
prompt
disconnect
bye
■wa3_ftp.bat
@ECHO OFF
@REM *********************************************************
@REM * sitemap.xmlを送信
@REM *
@REM *********************************************************
ECHO %time%
SET FTP_TXT_DIR=C:\ほげほげ\sitemap\
SET FTP_TXT=ftp.txt
SET TARGET=sitemap.xml
SET DO_ACTION=送信
SET MSG=%TARGET%を%DO_ACTION%しますか(y/n)?
SET /P pushKey=%MSG%" : %pushKey%"
IF "%pushKey%" == "y" (
REM OK
) ELSE IF "%pushKey%"=="Y" (
REM OK
) ELSE (
GOTO END
)
CD %FTP_TXT_DIR%
ftp -s:%FTP_TXT%
IF "%ERRORLEVEL%" == "0" (
GOTO OK
) ELSE (
GOTO ERR
)
:ERR
SET ERR_CD=%ERRORLEVEL%
ECHO ** %TARGET%%DO_ACTION% 異常終了! ERRORLEVEL= %ERR_CD%
GOTO END
:OK
ECHO ** %TARGET%%DO_ACTION% 正常終了!
GOTO END
:END
ECHO %time%
PAUSE
@REM *********************************************************
@REM * sitemap.xmlを送信
@REM *
@REM *********************************************************
ECHO %time%
SET FTP_TXT_DIR=C:\ほげほげ\sitemap\
SET FTP_TXT=ftp.txt
SET TARGET=sitemap.xml
SET DO_ACTION=送信
SET MSG=%TARGET%を%DO_ACTION%しますか(y/n)?
SET /P pushKey=%MSG%" : %pushKey%"
IF "%pushKey%" == "y" (
REM OK
) ELSE IF "%pushKey%"=="Y" (
REM OK
) ELSE (
GOTO END
)
CD %FTP_TXT_DIR%
ftp -s:%FTP_TXT%
IF "%ERRORLEVEL%" == "0" (
GOTO OK
) ELSE (
GOTO ERR
)
:ERR
SET ERR_CD=%ERRORLEVEL%
ECHO ** %TARGET%%DO_ACTION% 異常終了! ERRORLEVEL= %ERR_CD%
GOTO END
:OK
ECHO ** %TARGET%%DO_ACTION% 正常終了!
GOTO END
:END
ECHO %time%
PAUSE
ここで一つ大事な注意点があります(--)b
バッチファイルの名前は絶対に「ftp.bat」にしないでください。
バッチファイルの名前を「ftp.bat」にすると
ftp -s:[テキストファイル名]
のコマンド実行時に再帰的に自分を呼び出して無限ループします。
ご注意ください。
完了\(--)/