ネットショップ

ヤフーショッピングに複数のフォルダに置いてある画像を繰り返し圧縮してアップロードするバッチファイル

ネットショップ運営していると大量の画像ファイルをサーバーにアップロードしないといけないときってありますよね?

今使えるのかどうかわからないんですけど^^; もしかしたら参考にはなるかもしれませんので掲載しておきます。

繰り返し画像を圧縮してFTPするバッチファイル本体はこんな感じで

FTP接続情報を書いたテキストファイルを用意します

各ファイルの設置方法、画像フォルダの配置など

【必須条件】
(1) 7-ZipをC:\にインストールしておきます(7zipはこちら
(2) ftpyahoo.txt にFTP接続先情報を設定します
1行目の “open” の後ろにサーバー名
2行目にストアアカウント名
3行目にヤフーから通知されたFTPパスワード

【バッチファイルの設置場所】
アップロードしたい画像が入っている各フォルダの1つ上の階層に置いてください */
(ftpcmdもこのバッチファイルと同じ階層に置いてください)

設置の例:

※上記の構成で “images”を最初の移動先フォルダに設定します(バッチファイル”set topdir=images”のところ)

非プログラマーの人向けにバッチファイルの書き方について説明しますと・・・

命令文はだいたい次のような書き方をします。

コマンド名 引数

あるいは

コマンド名 オプション 引数1 引数2

コマンドやオプション、引数の間はかならず半角スペースが必要です。

引数の中にスペースが含まれている場合には
“C:\Program Files (x86)\7-Zip\7z.exe”
のように”(ダブルクオート)で囲む必要もあります。

remというのはその後に書く内容がバッチファイル内でコメント(注釈)として解釈され、動作には影響しません。
setというのは変数に値を入れるコマンドです。
cdは与えられた引数のディレクトリに移動するコマンドです。

このバッチファイルのキモの部分は

for /D %%a in (*) do (
・・・
)

のところで、topdir(imagesフォルダ)下にある各フォルダを変数aに繰り返し入れて、”cd %%a”で各フォルダに移動して7z.exeでフォルダ内にあるjpgファイル全部を圧縮するという部分です。

FTPが終わったら”cd ..”で1つ上の階層に戻るようにして、また繰り返し”cd %%a”で次のフォルダに移動して同じ処理をしています。