移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
contigでexeとdllだけをデフラグする
デフラグツール JkDefragとPower Defragmenter - プログラマのチラシの裏に書いたPower Defragmenterは、コマンドラインのデフラグツールContig v1.54のフロントエンド。
せっかくなのでcontigそのものを使う方法を調べてみた。

contigは特定のファイル・特定のフォルダ・特定のフォルダ内の特定の拡張子を持つファイルといった対象を選んでデフラグが出来る。
その特性を活かした某掲示板で紹介されていた使い方が、exeやだけをデフラグするということ。
毎回フルでデフラグするとその間は作業が出来ないし結構時間が掛かる。
でもexeだけでもデフラグしておけば、断片化によるアプリケーションの起動がもたつくのを防げるはず。

下記を実行すると、Cドライブ内のexeファイルだけをデフラグすることが出来る。
start /lowで実行することでプロセスの優先度を下げ、デフラグ中に他の作業をしやすくする。

start /b /low Contig.exe -s c:\*.exe

ついでにDLLもアプリケーションの起動にかかわるのでデフラグしたい。
下記などをやってみたが、こういった書き方は出来ない様子。

start /b /low Contig.exe -s c:\*.exe c:\*.dll
start /b /low Contig.exe -s c:\*.(exe|dll)

仕方が無いのでバッチファイルを作って下記のようにした。
/waitを入れないと、両方同時に開始してしまう。
contigの同時起動がだめかどうかは分からないが、やはりデフラグなので順番にやったほうがいいと思う。
多分効率もこの方がいいはず。
/waitを使えば、順番に処理してくれる。

start /b /low /wait Contig.exe -s c:\*.exe
start /b /low /wait Contig.exe -s c:\*.dll

このバッチファイルをプログラムのインストール後とか、もしくはスケジュール組んで定期的に実行しておけば、断片化の影響も少なく抑えられそう。

ちなみに/bを使わないと、Contig.exeを呼ぶ数だけDOS窓が開いてしまう。
地味に邪魔なので/bを使って新しくDOS窓を開かないようにする。

startコマンドの詳細は以下を参照。
start:ITpro

ついでにcontigのオプションを簡単に説明。

contig [-v] [-a] [-q] [-s] <ファイル名>
-v:詳細な進行状況を表示する。
-a:断片化の分析だけを行い、デフラグは実行しない。どのくらい断片化があるか確認するために使う。
-q:「quiet」モードで実行する。途中経過を表示せず結果のみ表示するようになる。-vスイッチより優先される。
-s:ディレクトリを指定する際、サブディレクトリも対象にする。ワイルドカードを使って特定の拡張子を持つファイルを指定する場合も必要。

最適化された状態の新しいファイルを作るといった事も出来るみたいだけど、あまり使わなさそうなので省略。
一応以下の様になるらしい。

contig [-v] -n <ファイル名> <ファイル容量>
スポンサーサイト
別窓 | ツール | コメント:0 | トラックバック:0
200704162107
デフラグツール JkDefragとPower Defragmenter
起動するだけで全自動デフラグ可能なフリーソフト「JkDefrag」 - GIGAZINE

Windows標準のデフラグよりも高速に動作するデフラグツール。
使い方もシンプルで、起動したら自動でドライブを検出しドライブレター順にデフラグを実行していく。
デフラグ終了まで実行ファイルをダブルクリックする以外、何もすることは無い。
WindowsのAPIを使っていて信頼性は標準搭載のデフラグと同等とみなせるとの事。
デフラグ途中のいつでも安全に終了することが出来るとある。
多分プロセスをKillしたらだめだろうけど、右上の×ボタンやALT+F4、タスクマネージャ > アプリケーション > タスクの終了など、正常の終了なら問題ないとある。

普通の実行ファイルのほかに色々オプションも備わっているコマンドラインと、スクリーンセーバーとして実行する方法も提供される。
スクリーンセーバーなんかは、ちょっとマウスを触っただけで終了するので、いつでも安全に終了できるというのは間違いなさそう。
通常の実行ではドライブを指定してデフラグをするとかは出来ないが、多分コマンドライン版なら出来るんじゃないだろうか。試してないけど。
コマンドラインはスケジュール組んで自動処理をさせるのに役に立つだろう。

ピンポイントでデフラグできる高機能フリーソフト「Power Defragmenter」 - GIGAZINE

Contig v1.54

製造元がマイクロソフトに買収されたコマンドラインのデフラグツールcontigと、そのGUIフロントエンド。
contigは特定のファイルやフォルダ、特定の拡張子を持つファイルだけをデフラグするといった、高度なデフラグが可能。
ただ、GUIは提供されていないためPower Defragmenterというフロントエンドが役に立つ。
Power Defragmenterでは、特定のファイル、特定のフォルダ、特定のドライブの3つのパターンが実行できる。
特定のファイル、特定のフォルダは、一度に4つまで指定が可能。
さらにPowerMode(TM) Disk Defragmentationという、デフラグを2回実行して高いデフラグ効果を得る2passモードもあるようだ。
また直ぐに断片化は出ちゃうだろうから、そこまでしなくてもいいと思うけど。

JkDefragでざっくりやって、不十分なファイル・フォルダをPower Defragmenterでデフラグするのがいいかな。

そういえば知人がだけどWindows標準のデフラグを実行中に、スタンバイだか休止モードに入ってしまい、そのままシステムが破損してしまうトラブルが合った。
そのときはノートPCのバッテリ不足でスタンバイだか休止モードに移行したからそのせいかもしれないけど、ちょっと怖いので電源オプションをスタンバイにも休止モードにもならないようにしてからじゃないと、デフラグを実行できない。
ちょっと実験してみるというのも出来ないしね。

予断として、そういえばLinuxにはデフラグが無いなとたまに思っていたけど、そこんとこを解説しているエントリがあった。

Geekなぺーじ:Linuxにデフラグが無い理由

Linuxにはデフラグが必要なくてすごいというより、Windowsにはデフラグが必要で余計って感じだ。
別窓 | ツール | コメント:1 | トラックバック:0
200704161826
リムーバルメディアの自動再生をオフにする方法
USBメモリもCD-ROMもあらゆるドライブの自動再生をオフにする方法 - GIGAZINE

GIGAZINEにまとまっているので何も書くことは無いんだけど、自分用のメモとしてあえて1エントリ作成。

CDや外付けHDD、USBフラッシュメモリ等リムーバルメディアを接続したときに毎回中身を読み込んで、エクスプローラで開くとかプレーヤで再生するとかを聞いてくるあれを出なくすることが出来る。
利便性のための機能としてつけたのかもしれないけど、ほぼ毎回キャンセルを押すことになるのでとても邪魔。

ソースはマイクロソフトのサポートオンラインCD-ROMの自動起動をOFFにする方法のようだ。
kbは879671

ファイル名を指定して実行 > gpedit.msc で呼び出せるグループポリシー ウィンドウで設定する。
グループポリシー ってコントロールパネルにあるかと思ったらなかった。
ちなみにこれはWindows XP Professional用でHomeはちょっとめんどくさいらしい。
詳しくは上記GIGAZINEで。

あと、上記GIGAZINEのページへのトラックバックにPowerToys for Windows XPのTweak UIを使うという選択肢も紹介されていた。
PowerToysはマイクロソフト謹製のWindowsを便利にするツールセット。
全部で10個のツールがあって、Tweak UIはそのうちのひとつ。
WindowsXPのインターフェイスの詳細設定が出来るようになるらしく、その設定に上記自動再生のOn/Offもあるそうな。
PowerToysは前から興味はあったけどなんとなくめんどくさくて使うことは無かった。
今回もまぁめんどくさいしいいかな。
日本語化して使うというのにまず抵抗もあるし。
別窓 | PC拡張 | コメント:2 | トラックバック:0
200704161627
好きなフォルダを仮想ドライブとして設定する方法「SUBSTコマンド」
Windowsコマンド集:(subst)

SUBSTコマンドを使うと、好きなフォルダに好きなドライブレターを割り当てることが出来る。
例えば以下のように設定すると、マイコンピュータに「P」ドライブが新しく作られる。
DOSコマンドなので、コマンドプロンプトから設定する。

SUBST P: "C:\Program Files"

PドライブはProgram Filesなので、以下のようにファイルパスを短縮して使えるので、もっとパスが長くなる場所にドライブレターを付ければ便利。

C:\Program Files\tool\tool.exe
P:\tool\tool.exe

マイドキュメントやデスクトップなどC:\Documents and Settings配下にあるフォルダに設定する場合は一工夫必要。
C:\Documents and Settingsの配下にはWindowsログインユーザ毎にフォルダが作られている。
1人で使っているPCの場合は、自分のユーザ名を決めうちで書いても良いが、環境変数を使うことも出来る。
例えばマイドキュメントの場合は以下のように%username%を使うことで、そのときのユーザのマイドキュメントへのパスを入力可能。

SUBST M: "C:\Documents and Settings\%username%\My Documents"

ちなみに、SUBSTコマンドによる設定は、一度Windowsをシャットダウンすると消えてしまう。
いつも設定しておきたい場合は、SUBSTコマンドを実行するバッチファイルを作って、スタートアップに登録が必要。
別窓 | 未分類 | コメント:0 | トラックバック:0
200704140816
Windowsで扱えるファイル名の長さ
長いファイル名を付けていたら操作できないファイルが出来てしまったので、Windowsで扱えるファイル名の長さがちょっと気になった。

※自分の環境がWindowsXP MC SP2なので、それ以外は知りません。

9x系とNT系ではやはり違うようだが9x系には興味がないのでNT系のみに注目する。

検索してみて参考にしたサイトは以下。

beefway says 32bit windows の ファイル 名 に関して

・絶対パスで255文字まで使用可能。
※9x系と違いマルチバイトでも1文字をそのまま1文字とカウントする。

・エクスプローラからは255文字までだが、領域としては260文字分ありAPIからは260文字まで使用可能。
※256文字~260文字の絶対パスのファイルは、開く・削除・移動といった操作が出来ないと思う。多分。

削除できなくなったファイルやフォルダを削除する

・Windows で扱えるファイル名の長さは 256Byte まで。
※「C:」などドライブ名は含まないが「\」は含む。

・256Byte よりも名前の長いファイルやフォルダへはアクセス出来ない。

概ね似てはいるけど微妙に長さが異なり、ドライブ名やセパレータ「\」を含むのか含まないのかも曖昧なので、実験してみた。

実験ディレクトリ C:\(つまりルートディレクトリ)
実験用ファイル 0123456789...(0123456789の10文字を25回繰り返した250文字のファイル名を持ったファイル)

○実験1
実験用ディレクトリに実験用ファイルをおいて、リネームで1文字づつ加えていく。

c:\0123456789... OK
c:\a0123456789... OK
c:\bb0123456789... OK
c:\ccc0123456789... OK
c:\dddd0123456789... OK
c:\eeeee0123456789... OK
c:\ffffff0123456789... NG

結果
255文字まではリネームできたが、リネーム中に256文字目の文字を入力することが出来なかった。

○実験2
実験用ディレクトリに1文字~6文字のディレクトリを作成し、その中に実験用ファイルを置いていく。

c:\0123456789... OK
c:\a\0123456789... OK
c:\bb\0123456789... OK
c:\ccc\0123456789... OK
c:\dddd\0123456789... OK
c:\eeeee\0123456789... OK
c:\ffffff\0123456789... NG

結果
5文字までのディレクトリにはファイルを移動/コピーできたが、6文字のディレクトリにはエラーが発生した。

---------------------------
ファイルまたはフォルダのコピー エラー
---------------------------
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 をコピーできません。指定されたファイル名は、無効かまたは長すぎます。
別の名前を指定してください。
---------------------------
OK
---------------------------


結論としては、ドライブ名「c:」とセパレータ「\」を除いて255文字まではアクセスできる。
PC1台だけで試したのでもちろん自分の環境限定となるが。
上記参考サイトではセパレータ「\」は含めて数えると書いてあったので、Windowsのバージョンによって異なる可能性はある。

ちなみに、これを調べる原因となったアクセスできないファイルは、開く・移動・削除どれも出来なかった。
右クリックによるコンテキストメニューも正常時より項目が不足していてプロパティなどが無かった。
そのファイルが入っているディレクトリを削除することで何とか解決したが、参考サイトの 削除できなくなったファイルやフォルダを削除する によればディレクトリ名を短くしたり上位のディレクトリに移動したりすることで解決できたようだ。

削除できなくなったファイルやフォルダを削除する ではアクセスできない状態を作り出す、バッチスクリプトも紹介されている。
別窓 | 未分類 | コメント:0 | トラックバック:0
200703142205
| プログラマのチラシの裏 |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。