プロが教えるわが家の防犯対策術!

upload.txtファイルをupload.batにして動かしたいのですが、送付画像のようになって動いてくれません。
FTPアップロードを自動化したいんです。

以下が、そのファイルの中身なんですが、どこをどう直せばいいですかね?
やりたい事は、imagesのフォルダ内にあるfolder00001などの画像ファイルをLhaplusと7-Zipを使ってアップロードしたいんです。



@echo off


rem /* 画像のあるフォルダに移動してフォルダ内の画像を圧縮して */
rem /*
rem /* ftpcmdに記載のFTP情報でサーバーに接続して圧縮ファイルをアップロードするバッチファイル */
rem /*
rem /* 【必須条件】
rem /* (1) 7-zipをC:\にインストールしておきます
rem /* (2) ftpyahoo.txt にFTP接続先情報を設定します
rem /* 1行目の "open" の後ろにサーバー名
rem /* 2行目にストアアカウント名
rem /* 3行目にヤフーから通知されたFTPパスワード
rem /*
rem /* 【バッチファイルの設置場所】
rem /*
rem /* アップロードしたい画像が入っている各フォルダの1つ上の階層に置いてください */
rem /* (ftpcmdもこのバッチファイルと同じ階層に置いてください) */
rem /*
rem /* 例:
rem /* デスクトップ\ヤフーショップ\upload.bat
rem /* \ftpcmd
rem /* \images\画像が収容されている各フォルダ(複数)
rem /*
rem /* ※上記の構成で "images"を移動先フォルダに設定します。
rem /*
rem /*----------------------------------------------------------

rem ここに各画像フォルダが収容されているフォルダを指定します(変更が必要)

set topdir=images


rem ここでLhaplus.exeへのパスを設定(スタートからLhaplusを右クリック→プロパティ、で
rem 表示される「リンク先」の内容を貼り付ける

"C:\Program Files (x86)\Lhaplus\Lhaplus.exe"

rem アップロードする際の圧縮ファイルの名前

set zipfile=img.zip


set curdir=%~dp0

echo %curdir%

rem 画像各フォルダの1つ上に移動
cd %topdir%

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

rem 画像フォルダに移動

echo "画像フォルダ:"
echo %%a
cd %%a


rem 入っている画像をまとめて圧縮する

"C:\Program Files (x86)\7-Zip\7z.exe" a "%curdir%\img.zip" *.jpg

rem 圧縮したzipファイルをFTPする

echo "%curdir%ftpinfo.txt"
ftp -s:"%curdir%ftpyahoo.txt"


del "%curdir%\img.zip"

timeout /t 600

cd ..


rem 戻る

)

echo "完了しました"

「バッチファイルに詳しい方、お願い致します」の質問画像

質問者からの補足コメント

  • HAPPY

    返答ありがとうございます!
    Yahoo知恵袋でも質問していたのですが、誰も答えてくれなくて本当に困っています。
    仰るとおりに全てやってみますので、どうか最後までお付き合い下さいませ。


    @echo off
    をコメントアウト

    という事ですが、消した状態でbat起動してみればいいという事でしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/11/29 19:58

A 回答 (2件)

とりあえず、先頭の


@echo off
をコメントアウトして、どのコマンドでエラーになっているか確認しては?


現在の流れからすると

echo "画像フォルダ:"
echo %%a

とで表示されてから

echo "%curdir%ftpinfo.txt"
までの間の

cd %%a
"C:\Program Files (x86)\7-Zip\7z.exe" a "%curdir%\img.zip" *.jpg

があやしいです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答、本当にありがとうございます。
数日間、やっているのですが上手くいかなくて困っています。

@echo off
をコメントアウトしてやってみましたが、どのコマンドでエラーになっているかの確認方法が分かりませんでした。

指定されたパスがみつかりません

というのは、どの部分の事かお分かりになりますか?

お礼日時:2016/11/29 22:15

@echo off を消せば、実行するコマンドが表示されるはずです。


コメントアウトがうまくいってないのなら、
@echo on
に書きかえてもいいです。

例えば
echo "画像フォルダ:"
 は、echo off では

画像フォルダ:

 と表示されるだけですが、 echo on の状態だと

C:¥〜> echo "画像フォルダ:"
画像フォルダ:

という感じに、コマンドとその結果という感じになるはずです。

> どの部分の事かお分かりになりますか?
については、

C:¥〜> なんかのコマンド
指定されたパスがみつかりません

という感じになっていませんか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!