*細かいこと [#s3e0694c] -「送る」フォルダはDocuments and Settings以下に移動したらしい。[[Windows XPの「SendTo」フォルダを一発表示:http://arena.nikkeibp.co.jp/tec/winxp/20030624/105095/]] *バッチファイル [#b4d68c83] コマンドの羅列を拡張子batのテキストファイルに保存すればバッチファイルが出来上がり、実行すればコマンド群が次々に実行される。非常に今さら感のある技術で、今ならVBScriptなんかを使うべきだとは思うが、その単純さが便利な場合もある。 引数としてスラッシュ区切りのパスを受け取るプログラムがあり、円マーク(バックスラッシュ)区切りのパスをお手軽に変換する方法はないものかと考えていた時に作ったのが、以下の文字列置換バッチファイルである。 @echo off set arg=%1 REM replace "\" to "/" set str=%arg:\=/% C:\myprogram.exe %str% 解説ページも以外と多い。 -[[[WinNT4]ファイル中の文字列を置換するバッチ処理:http://forum.nifty.com/fpcu/top/doslog02/0391.htm]] -[[バッチファイルの制御用コマンド:http://forum.nifty.com/fpcu/dosvcmd/batch.htm]] -[[コマンドプロンプトを使ってみよう! −バッチファイル−:http://ykr414.com/dos/dos05.html]] *ネットワークとか共有とかアカウントとか [#l16aceca] Windowsネットワークによるファイルやプリンタの共有は、型にはまると便利だが、何かとよくわからんトラブルを起こすので個人的には嫌い。 **netコマンド [#m6363b8b] ネットワーク周りの事は、実は殆どコマンドラインから行うことができる。一連の操作は net なるコマンドから初まる。この辺が使いこなせれば、Windowsネットワークのストレスも減るのかも。 -[[ネットワークコマンドで管理が変わる!:http://www.networkworld.jp/network/-/26461.html]] -[[netコマンドの使い方:http://www.atmarkit.co.jp/fwin2k/win2ktips/258netcommand/netcommand.html]] **XPのフォルダ共有 [#zc2e641a] XPになってフォルダ共有のインターフェースが大きく様変わりしたが、フォルダオプションから「簡易ファイルの共有を使用する」のチェックを外すことにより、Windows 2000と同様のインターフェースが戻ってくる。 **Everyoneとanonymous [#uc15177b] WindowsXP上で共有フォルダを作成し、「アクセス許可」をEveryoneにした。このXPマシンに、Windows2000マシンでアクセスしようとすると「パスワードおよびユーザー名が必要です」と言われた。ここで、XPマシンに存在しない適当なユーザー名とパスワードを入力すると、各種共有オジェクトは見えるが、アクセスしようとすると拒否された。一方、XPマシンに存在するユーザー名を入れると無事にアクセスできた。つまり、"Everyone"つうのは、「このマシン(この場合、XPマシン)上にアカウントを持っている人全員」という意味であり、anonymousじゃあないんだろうなと思った。 **ユーザーの「リセット」 [#a6dfbec3] 共有フォルダにアクセスする際に、うっかりユーザー名間違えて入力しちゃった場合を考える。再入力を促されるなら問題ないが、上の「Everyoneとanonymous」の場合のように、なまじ共有フォルダが見える所まで来ちゃう(XPのGuest権限?全くわからん)と、できる事はアクセスを拒否られる事だけである。こんな時には正しい名前を入力し直したいと思うわけであるが、このためにはコマンドプロンプトから net use /delete remote_name としてやると良い。remote_nameは"\\(コンピュータ名)\(共有名 or IPC$)"で、net use とすると一覧が参照できる。こうすると当該接続が切断されるので、また改めて共有フォルダをクリックなどすると、ユーザー名の入力を再び促されるようになる。いちいちログオフしたり再起動する必要はないのである。 面倒なら net use /delete * とすれば、既存の接続を全て切断できる。 **「このコマンドを処理するのに必要な記憶域をサーバーで確保できません。」 [#j9b83d70] XPでこんなエラーが出て共有できない事態が発生した。意外にpopularなトラブルらしく、検索すると同様の事例がちらほら。 -[[H.M.PAGE blog: このコマンドを処理するのに必要な記憶域をサーバーで確保できません:http://hm.cocolog-nifty.com/hmpage/2004/09/norton_internet.html]] -[[このコマンドを処理するのに必要な記憶域をサーバーに確保できません:http://homepage2.nifty.com/winfaq/w2k/network.html#1418]] 要は「IRPstackSize」なるパラメタの数値を上げろとのこと。私の環境では該当するパラメタがなかったので新たに作成した。15にするとうまくいったという報告が多かったが、私の環境では15ではうまくいかなかった。短気な私は値をいきなり30に上げて試したのであるが、とりあえずはうまくいった。最適な値探しはまたヒマな時にでもやろう。 *PowerToys [#yf219fa4] 本家製(だがサポートなし)の便利ユーティリティ。Tweak UIとか([[窓の手:http://www.asahi-net.or.jp/~vr4m-ikw/]]に類似)。 **入手 [#t72b417c] -[[Microsoft PowerToys for Windows XP:http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx]] **効用 [#m1052a3b] -Tweak UIによって、外付けUSB HDDを接続した際のウザい自動再生をOFFにできる。My ComputerからAutoplayのTypeあたりでいじる。レジストリを直接いじってもOK。参考:[[リムーバブルメディアを「自動再生」させない:http://arena.nikkeibp.co.jp/tec/winxp/20041112/110067/]] -Taskswitchによって、Alt+Tabの切換えの際にウィンドウのプレビューが見える。でも重くなるのでイヤ -Power Calculatorも便利そう -Virtual Desktop Managerは、動作は重いしウィンドウによってはうまくいかないので不要 *ファイルの比較 [#p28f6d63] **動機 [#o0fdbefd] 外部メディアに書き込んだ際など、「あるディレクトリ中に格納されているファイル(ディレクトリ)群が、他のディレクトリに格納されているものとバイナリレベルで同じか?」と思い、これを調べたくなることがある。 **方法 [#f2e57fdf] 全bitを調査すれば完璧にわかるのだが、これだと時間がかかる。同じかそうでないかだけわかればよいなら、MD5なんかのハッシュ値の比較だけを行えば充分。良く知らないが、偶然ハッシュが同じになってしまう確率はとってもとっても小さいのだろう。 専用のツールは恐らく数多くあるのだろうが、本家が配布する[[FCIV:http://support.microsoft.com/default.aspx?scid=kb;en-us;841290]]なんてのもあるので、これを使って試してみる。これの機能は -ファイルのハッシュの計算 -計算を、再帰的に深いディレクトリ階層までやってくれる -結果はXMLとして保存 なんてところのようなので、上記の様なデータ比較のために充分な機能がある。 というわけで、こういった既存のコマンドを使うと楽だろうと思ってオプションなどを調べていたが、結局プログラム自作するのが総合的な手間では最適解と思えてきてしまった。まあ折角調べたことなのでメモしておくことにする。 **実践 [#w84bf892] C:\mydata\important\{data1.txt, data2.pdf, ...} # 比較元 D:\mportant\{data1.txt, data2.pdf, ...} なんてのを比較したいとする。パスは通ってるとする ***方法1(正統派?) [#l5bb673a] 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?なんだかかっこ悪い。 ***方法2(邪道?) [#edb3c78c] 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するなり(あれば)する。これも何だかかっこ悪い。 まあ、致命的な欠点でもないんだから、妥協しとく。 **参考 [#te2cea49] [[ハッシュ値を利用してファイルの同一性をチェックする:http://www.atmarkit.co.jp/fwin2k/win2ktips/597fciv/fciv.html]] *タスクマネージャ [#ceb20d35] Windowsが安定するようになってからはお世話になる事は少なくなったものの、重要なプログラムである。 -「プロセス」タブで表示される情報は色々と増やせる。「表示」メニュー==>「列の選択」と辿るとよい *コマンドラインが好き [#ie5d25b1] **Windows標準のコマンド [#ke396796] ***findstr [#u332880a] grepみたいなもん。それほど高機能ではないが充分使える。例えば findstr /C:"mystring" /INS *.cpp などとする("mystring"を含むcppファイルを探す)。オプションの意味は下記 | C | 検索する文字列 | | I | 大文字小文字の区別をしない | | N | 行番号を出力 | | S | サブディレクトリも検索 | | M | ファイル名のみ出力 | **PS [#fc686966] PowerShellの略。以前までMonadだとかMSHとか言われていたもの。まだ正式版ではないみたいだが、@ITの記事をざっと見ると、パスの区切りがスラッシュでもいいような事が書いてある!これだけで試す価値があるのでちょっと遊んでみることにする。 -[[Channel9 Wiki: MSHWiki:http://channel9.msdn.com/wiki/default.aspx/Channel9.MSHWiki]] -[[特集 次世代WindowsシェルMSH(コード名:Monad)を試す(前編):http://www.atmarkit.co.jp/fdotnet/special/monad01/monad01_01.html]] ***入手 [#df630a16] -[[Windows PowerShell RC1 (for .NET Framework 2.0 RTM) x86:http://www.microsoft.com/downloads/details.aspx?FamilyId=2B0BBFCD-0797-4083-A817-5E6A054A85C9&displaylang=en]] Passportへのレジストが必要のようだ。.NET framework 2.0が必要なようだ。 **コマンドプロンプト [#d370eff6] -タイトルバーのアイコンを右クリックから「既定値」を選ぶと色々とカスタマイズできる。 -うっかり「全画面表示」を選択すると、起動時は全画面表示なので右クリックできず、exitするとウィンドウは閉じているのでこれまた右クリックできないという事態に陥った。Alt + Enter すると助かった。 -[[ckw:http://www.geocities.jp/cygwin_ck/]]というのが、ユーザーにより易しいコンソールウィンドウを提供してくれる。ただ私の環境で、ckwのウィンドウを(恐らくコマンドプロンプトのデフォルトサイズより)大きくすると、数秒に1度程度の間隔で、ckw.exe及びcsrss.exeのCPU使用率が10-50%程度にスパイク状に上昇してしまう。Windows Messangerをアップグレードしたり、Spybotしてみたが同様だった。上昇はウィンドウサイズの関数になっているようで、マニュアルの記述を見てもこのあたりに事情が潜んでいそうなのが窺える。時間の都合でソースはちょっと追えそうにないので、とりあえずトラックは今後の課題。 -レイアウトから(大きな)ウィンドウサイズを指定しても、[[NYACUS:http://www.nyaos.org/index_ja.html]]で開かれるウィンドウには反映されなかった(スクロールバーがあるので内部的には同等な広さなのだろうが、ウィンドウ枠は小さいまま)。手動で大きくすることは可能なのだが、ショートカットを作ってやって実行時の大きさを最大化にしてやると、いきなり大きな画面が出すことができた。 **UNIX環境 [#x48872ce] UNIX環境を実現したくばcygwinを使えばいいっちゃいいんだが、大規模すぎるし、UNIXとWindowsではそもそも前提条件が異なるので、何かと例外ルールに惑わされて面倒。 下記は、Windowsのルールに従いつつ、なるべくUNIXライクなコマンドラインのインターフェースを充実させようとする試み関連。 -[[ckw:http://www.geocities.jp/cygwin_ck/]] 必須 -[[NYAOS:http://www.nyaos.org/index_ja.html]] -[[WindowsをUNIXっぽく(cygwinを使わない):http://qwerty777.s57.xrea.com/winunix/first.htm]] -[[NT版UNIX-like tools:http://www.piedey.co.jp/softs/ntuxtl.html]] -[[ActiveScriptRuby:http://arton.hp.infoseek.co.jp/indexj.html]] CD/FDDのイメージを作ったり読んだりするにはddコマンドが便利。cygwin環境には勿論あるが、そうでないWindows用のddコマンドもある。 -[[dd for windows:http://uranus.it.swin.edu.au/~jn/linux/rawwrite/dd.htm]] dd if=\\.\a: of=FloppyImage.img dd if=\\.\g: of=CDImage.iso などとしてイメージが作れる。作ったイメージは、Daemon ToolsやらVMWareで活躍する。 また、本格的にUNIX環境の動作が欲しい時はリモートなりVMWareなり別パーティションなりに環境を用意する方がいいのかなあと考えつつ、まだ何もしていない。 **UNIXとか関係なしの便利コマンド [#c16a119d] -[[recycle.exe(コマンドラインからごみ箱へ):http://www.vector.co.jp/soft/win95/util/se072708.html]] -[[unplug.exe(コマンドラインからデバイスの安全な取り外し):http://www.vector.co.jp/soft/winnt/hardware/se197531.html]] あまり関係ないけど、ext2を読めるカーネルモードドライバを見つけた -[[http://www.fs-driver.org/index.html]] *CraftLaunch [#icd0fd7a] キーボード指向のランチャ -[[CraftWare:http://hp.vector.co.jp/authors/VA012411/]] - CraftDropも便利 -[[CraftLaunchを応援したいし、生きているし。:http://www.geocities.jp/craftlaunchex/]] -[[Wiki:http://craft.office.vg/index.php?FrontPage]] *あふ [#nfb4026d] 「超低機能二画面ファイラ」 FD-likeなファイラでは一番好き。 -[[System AKT:http://www.h5.dion.ne.jp/~akt/]] -[[Wiki:http://afx.my.land.to/index.php?FrontPage]] **コマンド [#daf063ee] キー定義から好みのプログラム類を起動できる。引数付きでプログラムを起動する際にちょっとつまずいたのでメモ。 バッチファイルならそのまま記述すれば良い。 C:\programs\afx\mybat.bat $P 一方、VBScriptなどではアタマにwscriptをつける必要があるみたい。 wscript C:\programs\afx\myscript.vbs $P *Paper Plane xUI [#lf3a19cf] こちらもFD-likeファイラ。Unicodeに対応してるのと、D&Dできる点が良い。 -[[TORO's Software library(Win32)よりPaper Plane xUI:http://homepage1.nifty.com/toro/slwin4.html#ppx]] -[[PPX (Paper Plane xUI)コンフィグメモ:http://aetermv.hp.infoseek.co.jp/cgi-bin/pyuki/wiki.cgi?FrontPage]] *素材 [#jd5908fd] -[[White Pencil:http://dotto.jp/]] *firefox [#w9607c7b] 動作も軽快になり、洗練されてきた。 **キーバインド [#s7c06cc9] Ctrl + Tab 次のタブ Ctrl + Shift + Tab 前のタブ Ctrl + [1-9] 数字に対応するタブを選択 タブを選択した状態(マウスでタブをクリック、もしくは{URL(Ctrl+L),検索(Ctrl+K)}エディットボックスからTabキーでタブにキーボードフォーカスを移す)なら Ctrl + -> タブ右移動 Ctrl + <- タブ左移動 **効果音 [#t45468c1] ページ内の検索が失敗するとバフッと効果音が鳴るのだが、これがたまらなく鬱陶しい上に、ツール→オプションからこれを解除する方法も見つからず、かなりムカついていた。 どうやらWindows環境だと効果音はデフォルトでONになっているようである。これをOFFにするには、C:\Documents and Settings\(username)\Application Data\Mozilla\Firefox\Profiles\(英数字羅列).default\prefs.js に user_pref("accessibility.typeaheadfind.enablesound", false); を加えればよい。