・「ひとまとめ」のコマンドライン対応版を作った理由(ワケ)2015/02/27 23:00


結論を先に言ってしまうと、
「自分の要求仕様に合うツールが見つからなかったから」
だ。

今回の要求仕様は、

(1)ファイル/フォルダを指定の場所にコピー/移動できること。
(2)重複ファイルは自動的に処理できること。
(3)フォルダ構造を維持できること。
(4)コピー/移動先に同名フォルダがあっても自動処理できること。

という感じで、結局「ひとまとめ」の機能を持っているコンソールアプリがあればよかった。

これくらいの要求仕様は一般的なものだろうと思っていたので、それなら誰かが作っているに違いないと考えてネットの世界を探してみたのだが、結局見つけることができなかった。
(1)と(3)を満たすツールはいくらでもあるのだが、加えて(2)を満たすものがなく、当然(4)も満たされない。

基本的にめんどくさがりの酢こんぶは、できることなら自分でツールを作るなんてことはしたくない。だから自分の欲しいツールがないかと一生懸命探すのだが、それが探しきれず、そしてそのツールがあればもっと大きな面倒が解決されるとわかっているなら、渋々w自分で作るという結論に到達するというわけだ。

でも、同じ仕様の「ひとまとめ」があればコマンドライン対応版なんか作る必要ないじゃないか、と思うかもしれないが、これがそうでもないんだなあ。

ニュースサーバから記事をダウンロードしながら、ダウンロードしたファイルを解凍しながら、解凍し終わったファイルを保存用のHDDに移動する、というような作業をすると、ひとつのHDDに3つのタスクがアクセスすることになるので、ものすごく処理が遅くなり、しかもHDDに負担をかけるので故障確率が上がるという、好ましくない状況が発生する。
解凍作業とファイル移動作業を順次処理できればいいのだが、「ひとまとめ」を「ExecS」で制御することはできないので、それができるようなコンソールアプリが欲しかったということ。

コンソールアプリなんて作ったことがなかったので、どれくらいの手間がかかるのかすらわからなかったのだが、コマンドライン引数を処理するmain()ルーチンをちょっとだけ書けばよかったので、それほど時間はかからなかった。出来上がったものに、全く不満がないわけではないが、とりあえず要求仕様を満たしているので、しばらくはこのまま使い続けることにしよう。

------------------------------------------
このブログの本店「かるた堂本舗」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

・VB6で作ったGUIアプリをコマンドライン対応にするときの覚え書き2015/02/26 23:00


(1)標準モジュールを追加して、そこにSub Main()を書く。
(2)プロジェクトのプロパティで、「スタートアップの設定」を「Sub Main」にする。
(3)Sub Form_Initialize()は、フォームがロードされなくても実行される。
 つまり、イニシャライズルーチンはそのままで、追加も変更もしなくてよい。
(4)フォーム上の要素は、フォームがロードされなくても普通に変数として使用できる。
 つまり、既存のSubやFunctionはそのまま使用できる。
(5)Sub Form_Unload()は、終了時には実行されない。
 つまり、終了処理が必要なら、追加しなければいけない。
(6)コマンドライン引数は、1つの文字列として渡されるので、分割処理を自分で書く必要がある。
 VB.NETなら、おまかせでOKなのに…
(7)設定ファイル等をアプリのフォルダに置いている場合は、フルパスで指定する。
 GUIだと問題なくても、コマンドラインで動かした時にファイルが見つからなくなる。

------------------------------------------
このブログの本店「かるた堂本舗」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

・3TBHDDにひかれてWin7デビュー。2012/01/19 23:19

タイ洪水からこっち、HDDの高騰が続いている。洪水直後は直前の3倍の値段がついているのが普通だったが、ここにきて2倍程度には下がってきた。
でも高い

テレビ番組をBDレコーダーで録画してPCのHDDに保存している酢こんぶとしては、このHDD高騰は大きな問題で、洪水直前に買った2TBHDDがいっぱいになった後は以前に保存したものを見直して不要なら消す、必要な部分だけ保存する、等の対策で何とか延命を図っていたのだが、さすがに限界が近づいてきた。

で、仕方ないから2TBHDDを追加購入しようと思ったのだが、実は3TBHDDの方が1GBに対する単価が安いのだ。じゃあ3TBでいいじゃんと思うかもしれないが、問題は3TBHDDがWinXPで使えないことで、酢こんぶのマシンはメインもサブもWinXP。orz

WinXPまでのWindowsには2.2TBまでのHDDしか認識できないという制限があり、3TBHDDはデータドライブとしても使用できない。とはいえ救済策は用意されていて、WinXPで3TBの全容量を使用できるようにするユーティリティが公開されているので、これを使えばなんとかなるやろと思って購入したのだが、、、

800GBしか認識しねーよ!(T_T)

詳しく調べてみると、使用可否はチップセットやチップセットのドライバにも依存するらしく、自宅マシンではどうもダメっぽい。こうなったらOS変更しか方法は残されていないが、幸い特別価格で買ってから3年ほど熟成した(^_^;Win7アップグレード版があるのでとりあえず金はかからない。ということでサブマシンのWin7化に着手した。

アップグレード自体は、XPが動いているマシン上でプログラムを動かして指示通りに進めていけば特に難しいことはなかった。XPのときにインストールされていたアプリもレジストリ以外は保存してくれているので便利。ちなみに3TBHDDはRATOCのSA-DK1EUという外付けリムーバブルドライブに入れてUSB2.0でつないだのだが、本体のファームアップによって無事3TBHDDを認識し、使用可能となった。本当はe-SATAで接続したかったのだが、このHDDをつなぐとサブマシンが立ち上がらなくなるので泣く泣く遅いUSB2.0で接続している。原因はよくわからないのだが、BIOSの問題ではないかと予想している。

そんなわけで強制的にWin7デビューさせられてしまったわけだが、Win7のUIはXPとは大きく異なっているので慣れるのに時間がかかりそうだ。あとセキュリティを堅くするのはいいけど、UACはウザ過ぎると思ったのですぐに最低レベル設定にした。一応NIS入ってるからだいじょぶだよね?

あ、それと、はじめて認識できたのが、酢こんぶの自作ソフトをWin7で使おうとしたときの問題点なのだが、酢こんぶのソフトはアプリケーションのフォルダに設定ファイルを保存するようにしているので、本体をProgram Filesとかに置いている場合(ほとんどそうだと思うけど)、管理者権限がない状態では実行不可となってしまう。まあ対処法はいくつもあるけど、設定ファイルの保存先を変えるというのはやりたくないなあ、、、。

------------------------------------------
このブログの本店「かるた堂本舗」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

・あれ?MultiParが実行後に終了できるようになってる!これではExecSの立場が、、、。2011/12/09 23:43

ファイルの連続実行ソフトであるExecSを作ったのは、実行後に終了しないQuickParを終了させて連続実行するため。そしてその後QuickParの正当な後継といえるMultiParに対応させるためにさらに進化した。
で、最近のMultiParの開発状況を確認するためにVer.1.1.9.6をダウンロードしてみたら、なんと
処理完了後に終了できる
ようになっているじゃありませんか!

これではExecSの立場がない。(T_T)

MultiParの開発者は日本人だから機能追加の要望が簡単に出せる。実際に酢こんぶも要望を出して機能追加してもらったことがあるのだが、「処理完了後に終了できるようにしてほしい」という要望は出さなかったし、思いつきもしなかった。(^_^;
par2ファイルを使った自動結合を連続で実行するためにExecSを作ったわけだから、MultiParに対する最も優先度の高い要望はそれだったはずなのに思いつきもしないというのは、無意識にExecSの存在意義を残しておこうとしてたってことかなあ、、、。

一応ExecSはできるだけいろいろな用途に使えるように配慮したつもりだし、par2での分割ファイル結合、rarファイルの解凍、単純分割ファイルの結合を統一的に扱えるという利点があるので、使いたいと思う人はいるだろうし、酢こんぶは当然使い続ける。ただ「MultiParを連続実行するなら必須」というわけではなくなってしまったので、使う人は減るかも。orz

別に酢こんぶに実害があるわけでもなく、MultiParを使う人にとっては便利な機能が増えたわけなので、客観的に見れば喜ばしいことだと思うのだが、主観的に見るとなんだか寂しいなあ、、、と。

------------------------------------------
このブログの本店「木全屋かるた堂」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

・「ExecS0.2.2.00」を公開しました。2011/09/02 14:50

本体のダウンロードはこちら
マニュアルはこちら
サポート掲示板は当面こちら

今回の変更点は下記の通りです。

(1)CPU Time監視時に関係ないアプリが終了するとエラーになる問題を修正した。
(2)例外発生時は「実行状態」の部分に例外番号と例外内容を表示するようにした。

(1)は、CPU Timeを監視しているときに別のアプリを終了させると、タイミングによっては例外が発生してしまうという問題を修正しました。
ExecSを動かした状態でPCを放っておくという場合はほとんど問題ないのですが、動作中に画像を開いたり閉じたりという操作を繰り返すと簡単に例外が発生してしまう状態でした。

とりあえずこの問題は修正できたものの、前に書いたように「非構造化例外処理」を使わざるを得なくなって少し不本意な状態です。その後、チェック部分をFunctionにしてしまえばいいんじゃないかと思いつきましたが、面倒くさいからいいやと、、、(^_^;

(2)は、例外が発生したのか実行していたアプリがエラーを返したのかがはっきりしないので、それが明確にわかるようにしたということです。

あとExecSはVectorに登録してあるのですが、あまりにもダウンロード数が少なくて悲しいです。(T_T)

登録カテゴリーが悪いのかと、
「ユーティリティ」->「その他」から
「ユーティリティ」->「バッチ用ユーティリティ」
に変更してみましたけど、どうなることやら、、、。


------------------------------------------
このブログの本店「木全屋かるた堂」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------