[PR]ネットとスマホ OCNでまとめておトク!

ファイル名を検索して同名のフォルダに移動させる ということを普段やっているのですが、この手順を自動化したいと思っています。

ファイル名には全て数字のIDが先頭についており、「ID=123456 ~出典A~」というような形になっています。
これを、別に存在する同じIDのフォルダ「出典A ID=123456」に自動で振り分けされるようにしたいです。

類似ソフトを幾つか調べましたが、複数のフォルダへ振り分けてくれるものが無く、ファイル及びフォルダは膨大な数の為対応しきれないようでした。
もし解決できるソフト等があれば、お教えいただきたいです。

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

  • ご回答及びパッチまでつくっていただき、感謝申し上げます...!
    実際に試したところ、こちらの情報提供不足故に上手く作動しなかった為、詳細な状態をご説明いたします。(プログラミング知識には未だ疎い為、文章に不明な箇所があればご指摘いただけますと幸いです)

    今回移動したいファイル群は、下記chrome拡張機能によってイラストサイトからダウンロードされたものです。http://bit.ly/2ZlvqUH

    ファイル名は拡張機能より
    (ID=?member-id? ?illust-id?) ?title? ?member-name? ?[?page?ページ]? ?illust-year??illust-month??illust-day? ?illust-hour??illust-minute? に従い命名されています。
    続く⇩

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/08/15 12:10
  • 続き⇩

    ファイルそれぞれに作者フォルダを用意しており、
    ?member-name? id=?member-id? とフォルダに命名されています。(およそ900件と2700件あります)

    普段はダウンロード時にidをコピー ➡ 全体フォルダ内で検索 ➡ 該当フォルダに保存 を行っていますが、1つのフォルダに保存 ➡ 自動振り分け という形に自動化しようと考えたのが今回の件です。
    (添付GIFに一連の動作を載せておきました)

    例にはIDと出典名を挙げましたが、他にも複数の文字が含まれています。
    あまりに膨大な数であり、条件づけが面倒ではないかと思われます。古いIDもあり、若いIDと一部重複することも多々あります。

    もし難しい、時間がかかるようでしたらお辞めいただいて構いません。
    Go言語での自作も視野に入れておりますので、可能な範囲でご検討、ご教授いただけましたら幸いです。

    「ファイルをフォルダに自動で振り分けてくれ」の補足画像2
      補足日時:2019/08/15 12:14
  • ご返答有難うございます! サンプル例が必要とのことで複数挙げさせていただきます。

    http://bit.ly/2Z5d5ul (単一)
    (ID=28080 76284793) サニー1.21ジゴワット せきはん 2019816 1026

    http://bit.ly/31Nyp9H (複数)
    (ID=485524 76277329) 無題 K454 1ページ 2019815 2304
    (ID=485524 76277329) 無題 K454 2ページ 2019815 2304

    http://bit.ly/31KppC9 (gif)
    (ID=1699112 68858457) かみさまの集う居酒屋 長谷梨加|まがた 2018521 2245

    ?[?page?ページ]? について、これは対象作品が複数枚あった際ページ付けを行う箇所です。1枚のみであれば実行されません。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/08/16 19:37
  • いただいたスクリプトを実行させていただきました。

    png jpg gifファイルを無作為に選び、対象フォルダへコピーした上で行ったところ、
    同梱ファイル及び、コピーした連番ファイル(ページ1,2,3...)は振り分けられましたが、
    その他の単一ファイルは移動されませんでした。
    加えてファイルに合わせたフォルダを作成した上で実行しましたが、同様に連番は振り分けられ、
    単一は実効されませんでした。


    こちらに使用したファイル郡をアップロードしました。(gifによる振り分けの動作も載せております。)
    https://drive.google.com/open?id=1P1zSQPSNDhhmtO …
    そちらで一度お試しいただければ原因がわかるかもしれません。重ね重ね宜しくお願いいたします...!

    No.4の回答に寄せられた補足コメントです。 補足日時:2019/08/18 11:08
  • 修正有難うございます!AHK-3試用したところ、振り分けは漏れなく完璧に実行されました。
    本当に有難うございます!!

    最後にもし可能であれば、メンバーネーム語尾によく使われている @~ の文字列をネームとして
    識別せず、フォルダへの振り分けやフォルダ生成に反映されないようにすることは可能でしょうか?

    (ID=155285 76153752) ベネチア 餡こたく@三日目A_63b 201989 0000
    (ID=2131305 76182512) . NORICOPO@単行本発売中 2019810 1726
    ドライブにも例を同梱しました

    この文字列は一時的なものが多い為、元のネームに戻った際別として分けられてしまうことがあります。
    IDだけでフォルダへの移動判定ができればいいのですが、全体的な問題では無いのでこのままでも構いません。
    質問も自動締切まで放置させていただきます。

    No.5の回答に寄せられた補足コメントです。 補足日時:2019/08/20 10:12

A 回答 (6件)

No.5です。



処理を修正しましたので、良ければお試しください。

http://qa99.webcrow.jp/file/Sorting-AHK-4.zip
    • good
    • 0
この回答へのお礼

Sorting-AHK-4試用させていただきました。何一つ問題なく、正常に振り分けられました...!
お忙しい中ご対応いただけたこと本当に感謝申し上げます!

始めてgooで質問しましたが、このようなご厚意をいただけると思ってもみませんでした...
質問は万が一のバグ報告の為に自動締切りで閉じるように致します。

4年間同様の作業を自ら手動で行ってましたが、これで楽になれます。本当に本当にありがとうございました!!!

お礼日時:2019/08/21 18:52

No.4です。



振り分けの動作のgif、ありがとうございます。修正しましたので、良ければお試しください。

http://qa99.webcrow.jp/file/Sorting-AHK-3.zip

あと、もし、うまくいっても、質問を締め切ると、バグが見付かった時に報告が出来なくなりので、出来れば質問は自動で締め切られるまで放置しておいてください。
この回答への補足あり
    • good
    • 0

No.3です。



すみません。少し処理を修正しました。以下をお試しください。

http://qa99.webcrow.jp/file/Sorting-AHK-2.zip
この回答への補足あり
    • good
    • 0

No.2です。



バッチファイルですと、UTF-8の文字に対応出来なかったので、「AutoHotkey」というスクリプト言語で書き直しました。

バグが無いように色々試しましたが、長過ぎるファイル名には対応出来ません。それ以外は大体大丈夫かと思います。

メンバーネームと、メンバーIDの指定も、臨機応変に対応出来るように処理を書いたつもりですが、実際にそちらで試してみないと分かりませんので、良ければお試しください。

http://qa99.webcrow.jp/file/Sorting-AHK.zip
    • good
    • 0

当該の拡張機能を試してみましたが、私のやり方がまずいのか、うまく動作しませんでした。



ですので、具体的なファイル名が分からず、的確な処理が書けない状態です。


(ID=?member-id? ?illust-id?) ?title? ?member-name? ?[?page?ページ]? ?illust-year??illust-month??illust-day? ?illust-hour??illust-minute?

という形式のファイル名との事で、実際のファイル名は、以下のような感じでしょうか。

(ID=999999 999999) タイトル メンバーネーム 1ページ 20190101 1212


大事なのは、「ファイル名の、メンバーID部分と、メンバーネーム部分を、どう指定するか」という点です。

「メンバーID」部分は、直前に「ID=」という記述があるのなら、簡単に指定出来ます。これは問題ないです。


問題は、「メンバーネーム」の直後にある、「?[?page?ページ]?」部分が、実際のファイル名ではどう記述されているのか、こちらでは分からない点です。

メンバーネームを指定する為には、その前後にある、「タイトル」か「ページ」の情報を利用しなければなりませんが、「タイトル」の方は、恐らく、使われる文字の種類が多く、目印には使えません。

その為、「ページ」部分の正確な書式が必要となります。


出来れば、実際のファイル名の例をいくつかお教えください。名前やIDやタイトルは適当に伏せて頂いて構いません。「tanaka07」なら「user001」のような感じです。形式と、使われている文字の種類だけ分かれば良いです。

あるいは、そちらで処理を編集される場合は、処理を編集しやすいように作り直しましたので、編集してみてください。

解説も添えましたが、よく分からない場合は、私が処理を書きますので、ファイル名のサンプルをいくつか補足なさってください。私はそんなに負担ではないですので、お気になさらないでください。

http://qa99.webcrow.jp/file/Sorting-BAT-2.zip
この回答への補足あり
    • good
    • 0

「Onigsed」(sed)というテキスト編集プログラムを利用したバッチファイルの例を書きましたので、良ければ一度お試しください。



http://qa99.webcrow.jp/file/Sorting-BAT.zip
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング