◆こんなソフトウェアつくってください~Part16~◆at SOFTWARE
◆こんなソフトウェアつくってください~Part16~◆ - 暇つぶし2ch88:名無しさん@お腹いっぱい。
11/10/11 00:13:20.09 +i3zaTFC0
失礼します。依頼をさせて下さい。

C:\test\juu fuku\ここでbatを実行し、この階層にある全てのフォルダ、
"[レーベル] タイトル (ジャンル)"
"[レーベル] タイトル"
"タイトル"

を対象に、これらから"タイトル"が重複するフォルダのみを
C:\test\juu fuku\該当\に移動できるようしたいと思ってます。

batでなくてもよいのですが、途中までbatで皆様の助けを得ながら作りましたので
"タイトル"の抜き出しまでですが、参考までにそちらを貼っておきます。

【.cmd】 バッチファイルスクリプト %8 【.bat】
スレリンク(tech板:109-110番),114

自分で作ろうと試みたのですが、私には力が及びませんでした。
また、あちらのスレをこれ以上、私のレスであふれかえすのも忍びなく
誘導もあってこちらのスレに参らせて頂いた次第です。
どうか、このプログラムを完成させて頂けないでしょうか?
よろしくお願いします。

89:名無しさん@お腹いっぱい。
11/10/11 02:14:19.41 NnBH1ZEaP
Volumouse
URLリンク(www.nirsoft.net)
このソフトなんですがtaskkillで終了させてもプロセスが残ってしまいます…
実行したらプロセスを残さず終了出来るソフトお願い致します

環境はVISTA 32bitです

90:名無しさん@お腹いっぱい。
11/10/11 02:25:28.49 ixHzWTwb0
taskkill /f

91:名無しさん@お腹いっぱい。
11/10/11 02:48:50.70 +i3zaTFC0
記入漏れがありました。OSはWin7 64bitになります。
また、重複があった場合に移動する\該当フォルダは、その名前は何でも良いのですが
出来たらプログラム実行時に新たに作成し、自動で開いて頂けると助かります。
以上で依頼に必要と思う情報を終わります。

以下はこのプログラムで私が何をしたいかの具体的な解説になります。
読むと逆に混乱するかもしれない蛇足です。
もし気になる方がいましたら、その方だけ読んで頂ければと思います。
::―――ここから――――
まず、このフォルダ群の名前は正確には、[アーティスト] 曲名 (アルバム)、[アーティスト] 曲名、曲名
というような形で基本的には書かれています。これらのフォルダはC:\音楽\アーティスト\毎に沢山あり
フォルダの中身は歌詞と画像と音声などが大方1つづつ入っているのが理想で
ただ、音声以外が欠けているものがあったりもします。

ところで、前のレスとフォルダネームが違うのですが、これは
先のスレで質問をした時にそう書いたので、流れでずっとそう書いていた為です。

また、例えば、\アーティスト\がレーベル名で、[アーティスト]もレーベル名のフォルダもありますが
[アーティスト]が作/編曲者であったり演奏家、別名義、歌人であったり様々なので、この2つは同一でない場合が多いです。
(アルバム)についても、マキシであったりシングルであったり、タイアップ先の名前であったり様々です。
後は曲名ですが、たまに大文字小文字による違いや稀に半角全角による違い、曲名への加筆はありますが
一番変動がなく同一なのがこの部分になりますので、ここの完全一致でタイトルの重複抽出を図った次第です。

重複を一か所に移動する目的は
重複の片方がmp3で画像と歌詞があるけれど、もう片方はflacで画像と歌詞は無い場合に
mp3の方から画像と歌詞を移動して、mp3のフォルダを削除して、flacのフォルダ名が
[アーティスト] 曲名 (アルバム)という名前で無いならそうリネームして元の場所に戻す
これら上記を手動で行うためです。
::―――ここまで――――

なお、依頼の形は>>88>>89の一段落目になります。そちらに合わせて検討して頂ければと思います。
それでは長くなりましたが、どうかよろしくお願いします。

92:名無しさん@お腹いっぱい。
11/10/11 03:11:35.33 ASwIXshZ0
つまり落としまくって半端に整理した大量のファイル類を整頓したいということか
エクスプローラーで曲名で検索してちまちま移動させればいいじゃん

93:25
11/10/11 04:07:53.25 2RLV/Np60
>>72
作っていただき、ありがとうございました。

現在、マザーが壊れて修理中なので、本当に試してみたいデータが使えなくて、
残念ですが、戻ってきたら使わせていただきます。

94:名無しさん@お腹いっぱい。
11/10/11 04:42:11.20 OI9TI9HL0
>>88
require "fileutils"
Dir.mkdir("該当")
a = []
Dir.glob("*/") { |s|
t = s.gsub(/(\[.+?\] )?(.+?)( \(.+?\))?\//, '\2')
FileUtils.move(s, "該当") if a.include?(t)
a << t
}
system("explorer 該当")

95:名無しさん@お腹いっぱい。
11/10/11 06:43:51.36 X1hqTK7E0
>>94
Ruby? せめて2~3行でもいいから、言語と使い方を書いてあげなよ。
依頼者が自作する志を持っていたとはいえ、コードだけ書いたレスしても使えないと思うよ。
それは分かってるでしょ?
>>40>>43と同じ人なのかな。
C#、Python、Rubyとバイリンガルなら日本語も使ってやって欲しいな。

96:名無しさん@お腹いっぱい。
11/10/11 07:32:25.16 +i3zaTFC0
訂正です。
×なお、依頼の形は>>88と89の一段落目になります。
○なお、依頼の形は>>89>>91の一段落目になります。

>>94
早速のレスありがとうございます。まだ私の使い方がダメなせいか
しっかり重複タイトルを移動することができません。具体的には
例えば今カレントディレクトリには下記のフォルダがあるのですが
[] xy&z
[ああ] a&b (甲&乙)
[ああ] a&bc (甲&乙 )
[う&う] a&b
[うう] これ
help
あれ
これ
ど&れ
ここから移動したいフォルダは下記になりまして
"[ああ] a&b (甲&乙)" "[う&う] a&b" "[うう] これ" "これ"
実際に移動しているフォルダは下記になります
"[う&う] a&b"と"これ"

batから>>94丸々コピペ(該当をtestに置換)を呼び出しています。
どちらもShift-JISになります。私の操作でダメなところ、もしくは
この場合により適合するコマンドがありましたらご教示下さい。
ちなみに該当の場合はUFT-8でtestと同じ移動結果になります。
教えて君で申し訳ないのですが、どうかよろしくお願いします。

>>95
あたたかいお言葉ありがとうございます。

97:名無しさん@お腹いっぱい。
11/10/11 08:01:00.07 X1hqTK7E0
1パスじゃ処理できないよね。Ruby分からんけど、そういう結果になりそうだとは予想してた。
高機能LL言語でも、要求を満たす動作にはあと数行必要なのでは。

…それにしても、Ruby使えたのね。インストールしてあったの?>>96
最近じゃ使ってて当たり前なのかなぁ。

98:名無しさん@お腹いっぱい。
11/10/11 08:06:50.13 +i3zaTFC0
訂正間違えた・・・・orz 89さん何度もごめんなさい。

ちなみにtestの場合はuft-8でフォルダは生成しても何も移動しませんでした。

>>97
require "fileutils"から検索して駄目元でインストールしました。
つい先ほどの導入だったので文字コードの段階でしどろですが…

99:名無しさん@お腹いっぱい。
11/10/11 22:39:28.58 OI9TI9HL0
require "fileutils"
Dir.mkdir("該当")
b = []
a = []
Dir.glob("*/") { |s|
t = s.gsub(/(\[.+?\] )?(.+?)( \(.+?\))?\//, '\2')
FileUtils.move(s, "該当") if a.include?(t)
b << t if a.include?(t)
a << t
}
Dir.glob("*/") { |s|
t = s.gsub(/(\[.+?\] )?(.+?)( \(.+?\))?\//, '\2')
FileUtils.move(s, "該当") if b.include?(t)
}
system("explorer 該当")


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch