Windowsネットワークによるファイルやプリンタの共有は、型にはまると便利だが、何かとよくわからんトラブルを起こすので個人的には嫌い。
ネットワーク周りの事は、実は殆どコマンドラインから行うことができる。一連の操作は net なるコマンドから初まる。この辺が使いこなせれば、Windowsネットワークのストレスも減るのかも。
XPになってフォルダ共有のインターフェースが大きく様変わりしたが、フォルダオプションから「簡易ファイルの共有を使用する」のチェックを外すことにより、Windows 2000と同様のインターフェースが戻ってくる。
WindowsXP上で共有フォルダを作成し、「アクセス許可」をEveryoneにした。このXPマシンに、Windows2000マシンでアクセスしようとすると「パスワードおよびユーザー名が必要です」と言われた。ここで、XPマシンに存在しない適当なユーザー名とパスワードを入力すると、各種共有オジェクトは見えるが、アクセスしようとすると拒否された。一方、XPマシンに存在するユーザー名を入れると無事にアクセスできた。つまり、"Everyone"つうのは、「このマシン(この場合、XPマシン)上にアカウントを持っている人全員」という意味であり、anonymousじゃあないんだろうなと思った。
共有フォルダにアクセスする際に、うっかりユーザー名間違えて入力しちゃった場合を考える。再入力を促されるなら問題ないが、上の「Everyoneとanonymous」の場合のように、なまじ共有フォルダが見える所まで来ちゃう(XPのGuest権限?全くわからん)と、できる事はアクセスを拒否られる事だけである。こんな時には正しい名前を入力し直したいと思うわけであるが、このためにはコマンドプロンプトから
net use /delete remote_name
としてやると良い。remote_nameは"\\(コンピュータ名)\(共有名 or IPC$)"で、net use とすると一覧が参照できる。こうすると当該接続が切断されるので、また改めて共有フォルダをクリックなどすると、ユーザー名の入力を再び促されるようになる。いちいちログオフしたり再起動する必要はないのである。
面倒なら
net use /delete *
とすれば、既存の接続を全て切断できる。
XPでこんなエラーが出て共有できない事態が発生した。意外にpopularなトラブルらしく、検索すると同様の事例がちらほら。
要は「IRPstackSize」なるパラメタの数値を上げろとのこと。私の環境では該当するパラメタがなかったので新たに作成した。15にするとうまくいったという報告が多かったが、私の環境では15ではうまくいかなかった。短気な私は値をいきなり30に上げて試したのであるが、とりあえずはうまくいった。最適な値探しはまたヒマな時にでもやろう。
本家製(だがサポートなし)の便利ユーティリティ。Tweak UIとか(窓の手に類似)。
外部メディアに書き込んだ際など、「あるディレクトリ中に格納されているファイル(ディレクトリ)群が、他のディレクトリに格納されているものとバイナリレベルで同じか?」と思い、これを調べたくなることがある。
全bitを調査すれば完璧にわかるのだが、これだと時間がかかる。同じかそうでないかだけわかればよいなら、MD5なんかのハッシュ値の比較だけを行えば充分。良く知らないが、偶然ハッシュが同じになってしまう確率はとってもとっても小さいのだろう。
専用のツールは恐らく数多くあるのだろうが、本家が配布するFCIVなんてのもあるので、これを使って試してみる。これの機能は
なんてところのようなので、上記の様なデータ比較のために充分な機能がある。
というわけで、こういった既存のコマンドを使うと楽だろうと思ってオプションなどを調べていたが、結局プログラム自作するのが総合的な手間では最適解と思えてきてしまった。まあ折角調べたことなのでメモしておくことにする。
C:\mydata\important\{data1.txt, data2.pdf, ...} # 比較元 D:\mportant\{data1.txt, data2.pdf, ...}
なんてのを比較したいとする。パスは通ってるとする
fciv.exe c:\mydata\important -bp c:\mydata\important -r -xml my_hash.xml
をまず打つ。これでimportant以下全てのファイルのハッシュがmy_hash.xmlに保存される。ファイルの場所の情報は、(この方法だと)相対パスとなる。この時のコンソールの出力は以下な感じ。
// // File Checksum Integrity Verifier version 2.05. // Start Time: 03/08/2006 at 05h15'28'' Error loading XML document. Create New XML database End Time..: 03/08/2006 at 05h15'28'' Processed 4 directories Processed 23 files Errors have been reported to fciv.err
XMLが無いので新たに作ると言い、時刻をメモし、処理し、エラーをfciv.errに吐いたそうだ。だが実際にはfciv.errにはコマンドラインが書かれているのみだった。「エラーはありません」ということなのだと解釈しておく。ハッシュを見たいのなら
fciv -list -xml my_hash.xml
などとすればリスト表示される。
次に
fciv -v -bp d:\important -xml my_hash.xml
として比較を行う。成功すれば
// // File Checksum Integrity Verifier version 2.05. // Starting checksums verification : 03/08/2006 at 05h23'45 All files verified successfully End Verification : 03/08/2006 at 05h23'45
となり、失敗すれば
// // File Checksum Integrity Verifier version 2.05. // Starting checksums verification : 03/08/2006 at 05h24'12 List of modified files: ----------------------- data1.txt Hash is : 81d95db337a18c65384d35ba7ea2efda It should be : ee3d1c92cf3763f8f6550f0b3f3cf01d End Verification : 03/08/2006 at 05h24'12
となる。パスのオプションをミスると「指定されたパスが見つかりません」と怒濤のように言われる。
あるべきファイルが無い場合には「指定されたパスが見つかりません」と言われるが、余計なファイルが比較先にあっても黙殺されてしまうのがちょっと残念。
fciv -list -xml my_hash.xml fciv d:\important -r
とか、エクスプローラの右クリックとかでファイル名を数えたりすればOK?なんだかかっこ悪い。
fciv.exe c:\mydata\important -bp c:\mydata\important -r -xml my_hash1.xml fciv.exe d:\important -bp d:\important -r -xml my_hash2.xml
として
fciv.exe my_hash1.xml fciv.exe my_hash2.xml
の出力を比べるなりdiffするなり(あれば)する。これも何だかかっこ悪い。
まあ、致命的な欠点でもないんだから、妥協しとく。
Windowsが安定するようになってからはお世話になる事は少なくなったものの、重要なプログラムである。
grepみたいなもん。それほど高機能ではないが充分使える。例えば
findstr /C:"mystring" /INS *.cpp
などとする("mystring"を含むcppファイルを探す)。オプションの意味は下記
C | 検索する文字列 |
I | 大文字小文字の区別をしない |
N | 行番号を出力 |
S | サブディレクトリも検索 |
M | ファイル名のみ出力 |
PowerShellの略。以前までMonadだとかMSHとか言われていたもの。まだ正式版ではないみたいだが、@ITの記事をざっと見ると、パスの区切りがスラッシュでもいいような事が書いてある!これだけで試す価値があるのでちょっと遊んでみることにする。
Passportへのレジストが必要のようだ。.NET framework 2.0が必要なようだ。
UNIX環境を実現したくばcygwinを使えばいいっちゃいいんだが、大規模すぎるし、UNIXとWindowsではそもそも前提条件が異なるので、何かと例外ルールに惑わされて面倒。
下記は、Windowsのルールに従いつつ、なるべくUNIXライクなコマンドラインのインターフェースを充実させようとする試み関連。
CD/FDDのイメージを作ったり読んだりするにはddコマンドが便利。cygwin環境には勿論あるが、そうでないWindows用のddコマンドもある。
dd if=\\.\a: of=FloppyImage.img dd if=\\.\g: of=CDImage.iso
などとしてイメージが作れる。作ったイメージは、Daemon ToolsやらVMWareで活躍する。
また、本格的にUNIX環境の動作が欲しい時はリモートなりVMWareなり別パーティションなりに環境を用意する方がいいのかなあと考えつつ、まだ何もしていない。
あまり関係ないけど、ext2を読めるカーネルモードドライバを見つけた
キーボード指向のランチャ
「超低機能二画面ファイラ」
FD-likeなファイラでは一番好き。
こちらもFD-likeファイラ。Unicodeに対応してるのと、D&Dできる点が良い。
動作も軽快になり、洗練されてきた。
Ctrl + Tab 次のタブ Ctrl + Shift + Tab 前のタブ Ctrl + [1-9] 数字に対応するタブを選択
タブを選択した状態(マウスでタブをクリック、もしくは{URL(Ctrl+L),検索(Ctrl+K)}エディットボックスからTabキーでタブにキーボードフォーカスを移す)なら
Ctrl + -> タブ右移動 Ctrl + <- タブ左移動
ページ内の検索が失敗するとバフッと効果音が鳴るのだが、これがたまらなく鬱陶しい上に、ツール→オプションからこれを解除する方法も見つからず、かなりムカついていた。
どうやらWindows環境だと効果音はデフォルトでONになっているようである。これをOFFにするには、C:\Documents and Settings\(username)\Application Data\Mozilla\Firefox\Profiles\(英数字羅列).default\prefs.js に
user_pref("accessibility.typeaheadfind.enablesound", false);
を加えればよい。