1.BatchCreatorって何?
世界でもっとも優れたニュースリーダー(酢こんぶ独断(^_^;))である、HyperNewsReader(以下HNR)を使っている酢こんぶが、
「こんなツールがあったら、HNRでGetしたファイルの整理が楽だよなあ」と思った物を、VB6の練習もかねて作ってみました。
したがって、 HNRを使っていないひとにとっては、意味のないツールです。
不幸にしてHNRについてまだ知らない人は、 http://www.fan.hi-ho.ne.jp/treasure/ を見に行ってくださいね。
説明はいらない、動作が知りたいという人は、4.から読んで下さい。
2.このツールの機能は?
HNRはNewsGroupからバイナリファイルを取り出すために特化されたNewsReaderで、非常に強力な重複ファイル検出機能を
備えています。HNRは、重複ファイルを検出すると途中でダウンロードを中止したり、場合によってはファイル内容を100%比較した
上で同じ内容と判断すると保存しないという機能を持っています。 このとき、重複情報を "_Same.txt" というファイルに保存して
くれるので、あとでファイルを整理するときはこの情報を元にしてファイルを移動/コピーしますが、この作業は手作業となるため、
長時間作業を続けると猛烈な肩こりに襲われたりします。
というわけで、この作業を自動化する目的で作ったのが、このツールです。
もう少し具体的に説明しましょう。
"_Same.txt"の中には以下のような情報が保存されています。
-----ここから-----------------------------------------------------------------
Title = [Jap] Pearl Harbour - [Jap]BeachGirl09.jpg
From = "pink" <info@pinknetjapan.com>
MsgID = 050701194921@cool.com.us
[Jap]BeachGirl09.jpg
D:\hypernr\Download\j.b.p.erotica\Fever Collection\[Jap] Pearl Harbour\[Jap]BeachGirl09.jpg
-----ここまで-----------------------------------------------------------------
1行目:記事のタイトル。作業には必要のない情報です。
2行目:記事の投稿者です。これも必要ありません。(設定によりない場合あり)
3行目:メッセージID。記事のIDですが、これも必要ありません。(記述がない場合あり)
4行目:_Same.txtと同じフォルダに保存されるはずだったが、重複ファイルだったので保存されなかったファイルです。
5行目:3行目のファイルと重複していると判断された、元のファイルです。(複数行になる場合あり)
上記の情報が重複したファイルの数だけ記述されているわけですが、長期間ダウンロードを続けていると重複も多くなってきて
100ファイルの内の5ファイルだけが他のフォルダに存在していたりという状態になります。こうなると、とても気持ちが悪いので
重複したファイルを探してフォルダを移動するという作業をしたくなります。
また、重複検出を動作させていても、条件によっては同じ名前で同じ内容のファイルが複数のフォルダに存在する状態になって
きて無駄なディスクスペースを占有するので、同一のファイルは一つだけ残してその他を削除したくなります。
"_Same.txt" には上記のように、ファイル名とそれが保存されているフォルダが記録されているので、この情報を
加工し、
ファイルコピー/移動/削除のためのバッチファイルを自動的に作るというのが、このツールの機能のすべてです。
3.動作に必要なファイル
動作にはVisualBasic6.0のランタイムが必要ですので、http://www.vector.co.jp/soft/win95/util/se089073.html
あたりから入手してください。
上記のVB6のランタイムに加えて、scrrun.dllというファイルがシステムフォルダに入っている必要があるので、
以下の場所にはいっていない場合はここに置いてありますので、ダウンロード後解凍して当該フォルダに入れてください。
1.Win95/98/Meの場合-多分、c:\windows\system
2.WinNT/2000の場合-多分、c:\winnt\system32
3.Win95系からWinNT系にアップグレードした場合-多分、c:\windows\system32
4.具体的な操作
bc.exeを起動して、「Dropしてください」と書いてある場所に"_Same.txt"をDrag&Dropしてください。"_Same.txt"と同じフォルダに
"_Same.txt.bat"というファイルができるので、これを実行するとファイルが移動されたりコピーされたりします。
Rev.0.1.7から、ファイル名が以下の2条件を満たしていれば(例えば、"_Same.txt_000"でも)処理するようにしました。
○ファイル名が "_Same" で始まっている。(大文字小文字を区別します)
○拡張子が "txt" で始まっている。(小文字に変換するので、"TXT","txT"等でも可)
これは、「ひとまとめ」でうっかり複数の"Same.txt"を1フォルダにまとめてしまったときの救済のための機能です。これに伴い、
バッチファイルのファイル名の仕様を、"元のファイル名"+".bat"としました。
(元が"_Same.txt_000"の場合は、"_Same.txt_000.bat"となります)
設定による動作の変化に関しては、5.で説明しますが、設定を変更して動作させ、できたバッチファイルを"_Same.txt"と比較
することで、何をしているのかがすぐわかると思います。
というか、バグの可能性があるので、バッチファイルの実行前には内容を確認されることをお奨めします。(^_^;)
5.ウィンドウ各部の説明
(1) _Same.txtをDropするWindow
このWindowに_Same.txtをDropしてください。複数ファイルのDropに対応しています。
(2) Copy/Move Mode Select
○ 常にコピー
コピー元とコピー先のファイル名が異なるかどうかにかかわらず、常にコピーします。コピー元には手を加えません。
ひとつのファイル名に対して検出された重複ファイルが複数の場合、最初のファイルがコピーされます。
安全のためには常にこのモードを使う方がいいかもしれません。
○ Copy/Move自動判定
コピー元とコピー先のファイル名が同じとき->コピー後にコピー元を削除します。但し、コピー元とコピー先が同一のフォルダの
場合はコピー元を削除しません。
コピー元とコピー先のファイル名が違うとき->「常にコピー」と同様の動作です。
ひとつのファイル名に対して検出された重複ファイルが複数の場合、削除の対象は、同名かつ違うフォルダにある
すべてのファイルとなります。(コピーされるのは最初のファイルです)
この機能によって同名/同内容のファイルを1箇所に集めることができますが、予期しないファイル削除が実行される
可能性があるので、バッチファイルの内容を確認するなどして十分注意の上使用してください。
○ すべてMove
重複と判断されたファイルを、_Same.txtのあるフォルダにコピー後、コピー元を削除します。重複ファイルが複数ある場合は
すべてのファイルについて同様の操作を行います。
コピー先のファイル名は、コピー元のファイル名となります。(他のモードと異なるので注意)
ひとつのファイル名に対して検出された重複ファイルが複数の場合、削除の対象は、違うフォルダにあるすべての
ファイルとなります。
この機能によって同内容のファイルを1箇所に集めることができますが、予期しないファイル削除が実行される可能性が
あるので、バッチファイルの内容を確認するなどして十分注意の上使用してください。
例として以下の条件でどのような動作をするかを示します。
(1)_Same.txtはフォルダAに存在し、そこに作られるはずだったファイルのファイル名は"1"
(2)"1"と重複していると判断されたファイルは3つあり、それぞれ B\2、C\3、D\1(B\2はフォルダBのファイル2のこと)
|
フォルダAに作成されるファイル |
削除されるファイル |
Copy |
1(B\2のコピー) |
なし |
自動判定 |
1(B\2のコピー) |
D\1 |
Move |
2(B\2のコピー), 3(C\3のコピー), 1(D\1のコピー)
|
B\2, C\3, D\1 |
注) Moveモードの場合、D\1というファイルが存在しなかった時は、フォルダAにファイル1は作られない。
(3) パス置換
○ あり
コピー元ファイルのパスの先頭が「パス置換前文字列」と一致した場合、その部分を「パス置換後文字列」に置き換えます。
この機能は、ドライブ構成の変更などによって、コピー元ファイルのパスがファイルの重複検出がされた時点(つまり_Same.txtが
作られた時点)と変わっていて、これをバッチファイルができたあとで変更するのは非常に手間がかかる、という状態の時に
使用することを想定しています。
例 : D:\HNR\JBPE\A1.jpg というファイルが、E:\GAZOU\JBPE\A1.jpg というファイルと重複していると判断された。
この時、D:\HNR\JBPE\ の中に、重複情報を記述した _Same.txt が作られる。
この後、Eドライブにあった「GAZOU」というフォルダを F:\AA\ の下に移動した。
この状態で D:\HNR\JBPE\_Same.txt を BachCreator で処理すると、
「E:\GAZOU\JBPE\A1.jpg を D:\HNR\JBPE\ にコピーする」というバッチファイルが作られるが、すでにA1.jpgは
Fドライブに移動されているのでバッチファイルを実行しても何も起きない。
ここで、 E:\->F:\AA\ というパス置換を行うと、所望の動作をするバッチファイルが作られる。
これは場合によっては非常に便利な機能ですが、置換文字列には何でも設定できてしまうために、置換後のパスが存在して
いないということがありえます。パスが存在しているかどうかのチェックは一切行っていませんので、「置換あり」に設定する場合は
置換文字列の設定に十分注意してください。(バッチファイルの内容を確認することをお奨めします)
○ なし
パスの置換をしません。
(4) 設定の保存について
(2)と(3)の設定は、終了時に"bc.ini"というファイルに記録されます。起動時に"bc.ini"がない場合は自動的にbc.exeと同じ
フォルダに作られます。
6.動作確認した環境
動作確認は基本的にWindows2000SP1/SP2環境のみで行っています。おそらくWin95/98/Me/NTでも動作するとは思うの
ですが、 保証の限りではありません。
ところでHNRに設定してあるフォルダの命名規則によっては、バッチファイル内のコマンドが軽く256文字を超えることがあるの
ですが、Win95系のコマンドプロンプトは、1コマンドの文字数制限がありましたっけ?(^_^;)
7.著作権等について
本ソフトはフリーウェアです。金品を得る/サービスを受ける等の目的以外であれば無料でご使用/配布いただいて構いません。
但し著作権は作者である酢こんぶに帰属することとします。
本ソフトは正しく動作するよう注意を払って作成されていますが、その動作を保証するものではなく、その動作によって生じた
いかなる障害、損害についてもその責を負いません。
転載等については酢こんぶまでお問い合わせください。またリンクに関しては特に承諾は必要ありませんが、トップページに
リンクいただけるようお願いします。
8.変更履歴
2002.02.19 Rev.0.1.8公開
○オーバライトの確認メッセージが常に出るようになっていた(-_-;)のを修正。
2002.01.30 Rev.0.1.7公開
○コピー元ファイルのパスを任意に変更できるようにした。
○同一名ファイルのオーバーライト確認をするかどうかを選択できないようにした。(常にオーバーライトする)
○処理状況を表示するのをやめた。
○エラーメッセージをメッセージボックスで表示するようにした。
○ドロップされたのが"_Same.txt"であるかどうかの判断基準を変更した。
2001.12.04 Rev.0.1.6公開
○ファイル名が"_Same.txt"で始まっていれば処理するように変更。
○開始時刻と終了時刻を表示するようにした。
2001.10.25 Rev.0.1.5公開
○複数ファイル処理時の処理済みファイル表示が、最後のファイルだけになっていたのを修正。
2001.09.04 Rev.0.1.4公開
○最小化時にエラーとなる不具合を改善。
2001.08.22 Rev.0.1.3公開
○Windowデザイン変更。
○動作モードに「すべてMove」を追加。
○Windowのリサイズに対応。
2001.07.27 Rev.0.1.2公開
○設定を記憶するように変更。
○Windowサイズ変更。
2001.07.08 Rev.0.1.1公開
|