- ベストアンサー
大量の画像ファイルを50ずつに分けたい。
※PC初心者の為記載がおかしい箇所がありましたら申し訳ありません。 10000件の画像(jpg)ファイルが一括で入ったフォルダが1つあり、それを50件ずつのフォルダに分けたいのですが自動でできる方法等ありますでしょうか。フリーソフトなど探したのですが見つけることができませんでした。 フォルダ内は下記のように基本の画像に添付の画像が付いている場合があり、名前の付け方は統一されていますが添付の枚数にかかわらず一緒になっています。(枝番号_1が基本の画像で_2~が添付画像です。AAAの_1と_2は同じ組となります。) これを組ごと(例:AAAは_1と_2で1組)に50組ずつに分けたいのですが画像数が多く困っております。 AAA_1 AAA_2 BBB_1 CCC_1 CCC_2 CCC_3 CCC_4 DDD_1 DDD_2 何か良い方法をご存知の方、宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
No.5です。 他のところへも書いたので、こちらを思い出しましたが、 「Perl」でやられてみてはいかがでしょう。 Perlと言うと、webのCGIの代名詞のように言われていますが、実はこのような処理を得意とする言語です。 フリーで、Windows版もありますから、作ってしまえば後は他のものにも同様に適用できるでしょう。 また、明確な(厳密な)仕様がご呈示頂ければ、私がソースコードをこちらに掲載することもやぶさかではございません。
その他の回答 (5)
どうも、頭が悪くて済みません。 【補足要求】 ファイルを昇順にして50件(50ファイル)ずつと言うことでしょうか。 →はい、そうです。 この組の、1組は何になるのでしょうか。(と言うより説明上必要なもの?) →1組で1件としてそれを50件(組)ずつに分けたかったので記載致しました。2枚で1組の画像もありますが、3枚・4枚で1組の画像もあります。その場合枝番号前は同じ数字で名前が付いています。 ---------------------------------- 組と件は同じ単位なのでしょうか。 もし同じであるとするならば、説明上不要のような気がするのですが。 (つまり「ランダムな名称のファイルを50ファイルずつに分けるやり方」となると思うのですが、その他の条件があるのでしょうか) あらたに「枚」という単位が出てきましたが、単位が増えるほどにそれぞれの関係がわからなくなってきます。 お手数ですが、相互の単位(件,組,枚)の関係を書いてもらえないでしょうか。
お礼
一番最新の回答にも記載させて頂きましたが何度も色々と回答頂き有難う御座いました。質問を頂いていたのに気づかず補足しないままで申し訳ありませんでした。 一応記載致しますと、ランダムな名称の画像が10000件入ったフォルダがあります。中身はjpgの画像で10000画像ありますが、2画像で1件となるもの、3画像で1件ととなるもの・・・10画像で1件となるものもあります。それを50件ずつに分けたいということでした。なので分けた先のフォルダ内のjpg画像数は50以上になる場合もあり、フォルダによってjpgの数は異なります。どの画像が2画像で1件なのか・・・10画像で1件なのかは画像名で判断するしかなくそこに手こずっていました。
【補足要求】 何度も済みません。 分けた後の50件入ったフォルダ内は、どのようなファイル名になっているのでしょうか? 1.(先頭11桁が同じもの) 12345678900_1 12345678900_2 ・ ・ 12345678900_50 2.(昇順のランダムなファイル名50件) 12345678900_1 12345678900_2 56789123412_1 56789123412_2 56789123412_3 ・ ・ ・ (あるいは、その他) 以上、よろしくお願いします。
補足
とりあえず手動で分けたものは2の状態になっております。 宜しくお願いします。
【補足要求】 たぶん、1つのファイルのことを1件と言われているのだと思いますが、 > 10000件を50件ずつに分けたいです ファイルを昇順にして50件(50ファイル)ずつと言うことでしょうか。 > (例:AAAは_1と_2で1組)に50組 この組の、1組は何になるのでしょうか。(と言うより説明上必要なもの?) また、 > 10フォルダ位あります とりあえず、1フォルダができれば他のフォルダも同様にできるものなのでしょうか。 ------------- それはそれとして、 コマンドプロンプト(DOS窓)を立ち上げて > DIR *.* > FILENAME.TXT などと、ファイル名一覧を取り出し その(FILENAME.TXT)をエクセルに取り込んで、エクセルの行番号を元に50件ずつファイル移動されるようなバッチファイルを作られてはいかがでしょう。 (手間はかかりますが、コピーは比較的楽にできます)
補足
ファイルを昇順にして50件(50ファイル)ずつと言うことでしょうか。 →はい、そうです。 この組の、1組は何になるのでしょうか。(と言うより説明上必要なもの?) →1組で1件としてそれを50件(組)ずつに分けたかったので記載致しました。2枚で1組の画像もありますが、3枚・4枚で1組の画像もあります。その場合枝番号前は同じ数字で名前が付いています。 とりあえず、1フォルダができれば他のフォルダも同様にできるものなのでしょうか。 →ファイル名は異なりますが同じ手順踏めば処理できると思います。 色々と有難う御座います、宜しくお願い致します。
- meta-bow
- ベストアンサー率53% (342/645)
こんばんは。 本来はファイル名を連番で変更するソフトなんですが(下記リンク参照)、実は連番のフォルダを作ってもくださるソフトです。 ソフトを起動し、3つあるウインドウのうち左下で右クリックし、連番オブジェクト作成を選んでやると、前文字列+連番とか連番+後文字列などで一気に作れます。勿論作成数も設定可能です。 また使い方をアレンジすると、ファイル名でソートをかけて必要なファイルだけを変更対象(右下ウインドウへ移動)し「名前を変更することなく」任意のフォルダへ移動出来ちゃう凄いソフトです。 まあ本来の使い方を考えればピッタリなソフトだとは思いますが。 ちなみにソフト内でディレクトリとあるのがフォルダのことです。
お礼
お礼が遅くなり申し訳ありませんでした、教えて頂いたソフトで手動作業がかなり減り大変役に立ちました。有難う御座いました。
どこまで、適用できるかわかりませんが、バッチファイルを作ってやられてみてはいかがでしょう。 例: MOVE AAA*.JPG AAADIR MOVE BBB*.JPG BBBDIR ・ ・ (AAADIR,BBBDIRがフォルダ名になります) これをメモ帳などで作り「JPGMV.BAT」(バッチファイル)などと拡張子を(.BAT)にします。 そして実行はダブルクリックでもいいですし、コマンドプロンプトから実行してもいいでしょう。 実際には、 MOVE C:\TMP\AAA*.JPG C:\TMP\AAADIR などと、完全パス名の方が間違いがないかも知れません。 また、フォルダはあらかじめ作っておく必要があります。 これもバッチファイルでやるといいでしょう。 MKDIR C:\TMP\AAADIR MKDIR C:\TMP\BBBDIR ・ ・ 上記をメモ帳で作成し「JPGDIR.BAT」などのファイル名で保存します。 50種類ならば、これでなんとか対処できるのではないでしょうか。 また、もし何かの理由でファイル名1つ1つを指定して移動するような場合は(つまり10000件)Excelでうまく連番処理などしてバッチファイルを作るようにすればいいと思います。
補足
丁寧な回答有難う御座います。 私の質問の書き方が悪く申し訳ないです、質問欄に書いたAAA、BBBの部分は一例で実際はランダムな数字(11桁)が振られています。 【例】 12345678900_1 12345678900_2 56789123412_1 56789123412_2 56789123412_3 ・ ・ ・ このフォルダに一緒になっている10000件を50件ずつに分けたいです。 また、同様のフォルダが10フォルダ位あります。(合計100000件)このような内容でも上記に記載頂いた方法でできますでしょうか。PCはエクセル程度しか使えないもので幼稚な質問だったらすみません。
お礼
お礼が遅くなり申し訳ありませんでした。 色々とご教授頂き大変助かりました。 なんとか解決することができました、有難う御座いました。