; cocoup_file_only.ahk ; ▽ 概要 ; tsupo(H.Tsujimura)さん作の uploadFile(ここあっぷるコマンドライン版プログラム1.33a)を ; 使用して、ココログにローカルのファイル(複数可)をアップロードします。 ; フォルダをドロップした場合は、フォルダのみ作成されます。 ; (フォルダをドロップした場合、同名のフォルダがサーバー上に存在すれば何もアップロードされません。 ; ディレクトリツリー丸投げ版を使用してください) ; AutoHotkeyインストール時に、"Enable drag & drop onto scripts" を有効にしないと ; 動作しません(windows95/98では無効)。 ; ▽ 使い方 ; このファイルをuploadFileと同じ場所に置き、下記の各種設定でアカウント・パスワード等を正しく ; 設定してください。 ; 設定してこのファイルを上書きしたら、ahkアイコンにローカルのファイルをドロップすれば ; アップロード先ディレクトリの入力ダイアログを開きます。 ; デフォルトのアップロード先ディレクトリが既にボックスに記入されているので、変更しない場合は ; そのままOKボタンを押せばアップロードが開始されます。 ; uploadFile作者さんの説明と微妙に異なりますが、相対パスは“ブログ名から”の相対パスです。 ; ローカル上で parent_dir より下の階層のファイルをドロップした場合、 parent_dir よりも下の ; ディレクトリは自動で作成されます。ただし、default_dir(ダイアログに入力したディレクトリ) ; に何らかのパスが記述されていれば、parent_dirは無視して、記述したパスにファイルをアップロード ; します。 ; 例1) default_dir = ./images   upload files = C:\web\cocolog\images\hoge.jpg ; --> URL = http://.cocolog-nifty.com//images/hoge.jpg ; 例2) default_dir = ./images   upload files = C:\web\cocolog\images\2007\hoge.jpg ; --> URL = http://.cocolog-nifty.com//images/2007/hoge.jpg ; 悪い例) default_dir = ./image/2007   upload files = C:\web\cocolog\imageS\2007\hoge.jpg ; --> URL = http://.cocolog-nifty.com//image/imageS/2007/hoge.jpg ; ※パスの大文字小文字は区別します。 ; 例3) parent_dir = C:\web\cocolog    default_dir = 無記入 ;   upload files = C:\web\cocolog\images\2007\hoge.jpg ; --> URL = http://.cocolog-nifty.com//images/2007/hoge.jpg ; parent_dir下の(パスにparent_dirが含まれる)ファイルならば、default_dirが無記入でも下の階層の ; ディレクトリは自動で作成されます。ただし、parent_dir に属さないファイルの場合は default_dir ; またはダイアログでアップロード先ディレクトリを指定しない限り、HOMEDIRにアップロードされます。 ; 最終確認でOKボタンを押し、コンソールに「アップロードしたファイルの url = http://〜」 ; のように出ればアップロードが始まっています。 ; アップロードを中止するにはバッチの停止コマンド(コンソールで Ctrl+C)で停止できます。 ; ▽ 仕様 ; ココログフリー版でしか動作テストしてません。 ; このスクリプトはデスクトップにバッチファイルを作成し、最終確認で Go されればuploadFileを ; 呼び出してアップロードを行います(中止した場合は手動でバッチを実行)。 ; 容量チェックやパスワードチェックなどは行いませんので、サーバ上の空き容量やパス・アップロード ; 先ディレクトリの入力ミスには十分ご注意ください。 ; ディレクトリは存在しなければ作成されますが、ココログの仕様により、同一ディレクトリに同名の ; 既存のファイルが存在した場合、上書きされずにファイル名に連番が付きます。 ; その他、制限事項はココログのヘルプやuploadFile添付のテキストを参照してください。 ; 確認のためブラウザを起動してファイルマネージャを開いておく事をお勧めしますが、ブラウザで ; ココログにログインしなくてもアップロードは可能です。 ; ログファイルの書き出しはしません。アップロード後のURLはコンソールかファイルマネージャで ; 確認してください。 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; 各種設定 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; このahkファイルは uploadFile.exe と同じディレクトリに置いてください。 acount = passwd = blog_id = cocolog_type = -tF parent_dir = default_dir = ./temp up_bat = %A_Desktop%\cocolog_upload.bat ; 各変数の説明 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; acount = アカウント (必須) ; passwd = パスワード (必須) ; blog_id = ブログID (状況に応じて) ; ※ 同一アカウントで管理しているココログが1つならば無記入のまま変更しないでください。 ; ※ 同一アカウントでココログを2つ以上管理されている方は blog_id = hoge のように記入します。 ; cocolog_type = ココログのタイプ (必須) ; ※ ココログベーシック、ココログプラス、ココログプロ)の場合は Fを消してください(= -t)。 ; parent_dir = ローカルの親ディレクトリ (必須) ; ※ D:\webpage\cocologのようにディレクトリパスをフルパスで記述してください。 ; ※ アップロード先ディレクトリは、parent_dir を基準にして相対パスでダイアログに表示されます。 ;   つまり、ここで設定したディレクトリがサーバー上の にあたります。 ; 例) parent_dir = C:\web\image && C:\web\image\2007\hoge.jpg をアップロード ; --> URL = http://.cocolog-nifty.com//2007/hoge.jpg ; default_dir = デフォルトのアップロード先 (任意) ; ※ parent_dir に属さないファイルの場合をドロップしたときに、初期状態でダイアログに記入 ;  されているアップロードディレクトリです。 ; ※ ここに何らかの記述があれば、上記 parent_dir より優先されます。 ; 例) default_dir = ./image/dscf && D:\DCIM\071012.jpg をアップロード ; --> URL = http://.cocolog-nifty.com/image/dscf/071012.jpg ; up_bat = バッチファイルを置く場所 (任意) ; ※ このスクリプトで作成されるバッチを置く場所。フルパスで指定しても構いません。 ;   同名のファイルが存在する場合、既存のファイルをゴミ箱に移動してから新規作成されます。 ;   デスクトップの場所(%A_Desktop%)はTweakUIによるデスクトップの場所変更に対応しています。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if ((acount = "") || (passwd = "") || (parent_dir = "")) { MsgBox, 16, error, アカウント または パスワード または ローカルの親ディレクトリ が無記入です`n必須項目を確認してください。 ;Run, %A_ProgramFiles%\TeraPad\TeraPad /hsp /jl=66 "%A_ScriptFullPath%" Run, Edit "%A_ScriptFullPath%" return } IfNotExist, %A_ScriptDir%\uploadFile.exe { MsgBox,16,error, uploadFile.exe が見つかりません。`nこのahkファイルは uploadFile.exe と同じディレクトリに置いてください。 return } if FileExist(up_bat) { FileRecycle, %up_bat% } if %0% = 0 { MsgBox, 16, error, ダブルクリックしても何もアップロードしません。`nファイルをドロップしてください。 return } Loop %0%{ GivenPath := %A_Index% Loop %GivenPath%{ LongPath = %A_LoopFileLongPath% break } } SplitPath, LongPath, name, dir if InStr(dir, parent_dir, CaseSensitive=ture, StartingPos=0) <> 0 { if (dir == parent_dir) { sub_dir = } else{ StringReplace, sub_dir, dir, %parent_dir%\, , 1 StringReplace, sub_dir, sub_dir, \, /, 1 sub_dir = ./%sub_dir% } } else{ sub_dir = %default_dir% } Label: InputBox, up_dir, , upload先ディレクトリを入力してください`n(http://.cocolog-nifty.com/から見た相対パス)`n`n例) HOMEDIR = (無記入)`n  //images = ./images, , 420, 190, , , , , %sub_dir% if ErrorLevel <> 0 return if ((up_dir = "") && (InStr(dir, parent_dir) = 0)) { MsgBox, 4678, , %parent_dir% に属さないファイルかつ、upload先ディレクトリが無記入の場合は`nHOMEDIR(ブログ名直下のディレクトリ)にアップロードされます。続行しますか? IfMsgBox, TryAgain goto, Label else IfMsgBox, Cancel return } FileAppend, @ECHO OFF`nSET PATH=%A_ScriptDir%`nCD /d %dir%`n, %up_bat% if (blog_id = "") { command_1 = uploadFile -u %acount% -P %passwd% -f } else{ command_1 = uploadFile -u %acount% -P %passwd% -b %blog_id% -f } Loop %0%{ GivenPath := %A_Index% Loop %GivenPath%{ LongPath = %A_LoopFileLongPath% SplitPath, LongPath, file, dir if InStr(file, " ") > 0 file = "%file%" if (up_dir = "") { if InStr(LongPath, parent_dir, CaseSensitive=ture, StartingPos=0) <> 0 { StringReplace, sub_dir, LongPath, %parent_dir%\, , 1 SplitPath, sub_dir, , sub_dir if InStr(sub_dir, "\") = 0 { ; up_dir未設定 && parent_dir直下のファイル FileAppend, %command_1% %file% %cocolog_type%`n, %up_bat% } else{ ; up_dir未設定 && parent_dirのサブディレクトリに属するファイル StringReplace, sub_dir, sub_dir, \, /, 1 FileAppend, %command_1% %file% -d ./%sub_dir% %cocolog_type%`n, %up_bat% } } else{ ; up_dir未設定 && parent_dirに属さないファイル FileAppend, %command_1% %file% %cocolog_type%`n, %up_bat% } } else{ ; up_dirが有効 FileAppend, %command_1% %file% -d %up_dir% %cocolog_type%`n, %up_bat% } } count = %A_Index% } FileAppend, pause, %up_bat% ;Run, %A_ProgramFiles%\TeraPad\TeraPad "%up_bat%" ;WinWait, %up_bat% - TeraPad Run, Notepad "%up_bat%" SplitPath, up_bat, bat_name WinWait, %bat_name% - メモ帳 MsgBox, 4145, ,最終確認`nOKボタンを押すと、この .bat の内容でファイルがアップロードされます。`nアップロードするファイル数は計 %count%個あります。`n本当に実行しても宜しいですか? IfMsgBox, cancel return RunWait, %up_bat% MsgBox, done. return