Windows 8.1は、ファイルシステムのNTFSが持つ透過的圧縮機能と、ZIP形式を疑似フォルダーとして使用するという、2つの圧縮・展開(伸張/解凍)機能を備えている。前者はWindows NT 3.51時代から、後者はWindows XP時代からサポートしてきた。今回はNTFS圧縮機能に関するTipsを紹介しよう。

NTFS圧縮とは

前回紹介した「圧縮フォルダー」は他者との共有などに使えるが、今回の「NTFS圧縮」はPC管理を主軸においている。そもそも圧縮とは、冗長部分を符号化するアルゴリズムを用いて、実際のデータ量を縮小する技術だ。NTFS圧縮も、基盤にあるのはMS-DOS時代の圧縮機能であるDoubleSpaceであり、現在に至るまで多くの改良が加わっている。

Windows NT 3.51 Workstationのデスクトップ。NTFS圧縮を実行するコマンド「compact」を搭載していた

NTFS圧縮の欠点と言われるのがパフォーマンスの低下だ。圧縮・展開時は、CPUやI/Oといったハードウェアリソースを消費するため、通常のファイル/フォルダー操作に比べてオーバーヘッドが発生するのは事実である。だが、これを欠点としていたのは10年以上も前の話で、現在の高性能化したPCであれば神経質になる必要はまったくない。

既に終えたプロジェクトに関する資料やファイルなどをNTFS圧縮し、必要に応じてインデックス検索で参照するといったソリューションを想定すれば、NTFS圧縮の利便性を理解してもらえるのではないだろうか。

圧縮したファイルが解除される?

NTFS圧縮の操作方法は第27回で述べているので、そちらを参照してほしい。今回紹介したいのは自動化だ。

本来であれば、NTFS圧縮を施したファイル/フォルダーは、コピー・移動先のフォルダー状態によって結果が異なる。移動先が圧縮済みフォルダーの場合、圧縮状態を維持するが、そうでない場合は圧縮状態を解除する仕組みだ。このルールはFAT32など異なるファイルシステム間にも適用される。

NTFS圧縮の適用ルール。コピー・移動先のフォルダーが圧縮か未圧縮かの状態によって、操作したファイル/フォルダーの圧縮状態は変化する

だが、移動元のフォルダーがシンボリックリンクで作成している場合、追加したファイル/フォルダーは適用外。このようにNTFS圧縮は簡単に解除されることが多いため、一定時間ごとに特定のフォルダー全体を圧縮するタスクを作成するのが簡単なのだ。

NTFS圧縮を施した「Delivered」フォルダーにシンボリックリンクを持つフォルダーを追加した状態。フォルダー名は黒字であることから圧縮されなかったことが分かる

タスクを作成する

Windows NT時代からWindows 8.1の現在に至るまで、NTFS圧縮を制御するのが「compact」コマンドである。圧縮状態の表示や変更が可能なコマンドだが、今回使用するのは、圧縮を有効にするオプション「/C」、サブフォルダーまでを対象にするオプション「/S」、エラー発生時も処理を続けるオプション「/I」の3つ。

今回は操作ステップを減らすため、コマンドプロンプトの記述だけ紹介する。「schtasks /create /tn "Compact_Folder1" /tr "compact.exe /c /s C:\Users\kaz\Documents\Delivered* /i" /sc daily /st 17:00:00」と実行してみてほしい。これで毎日17時に「C:\Users\kaz\Documents\Delivered」フォルダー下はすべて自動圧縮される。そのため、パスはご自身の環境に応じた変更が必要だ。

schtasks /create /tn "Compact_Folder1" /tr "compact.exe /c /s C:\Users\kaz\Documents\Delivered\* /i" /sc daily /st 17:00:00

※上記の入力内容において、パスは環境に応じて変更する。

「Win」+「X」キーを押してクイックアクセスメニューを開き、「C」キーを押すか「コマンドプロンプト」をクリック/タップする

囲みの内容を入力して「Enter」キーを押す

また、ユーザーがサインインしていない(かつPCはシャットダウンしていない)状態でもタスクを自動実行する場合は、タスクスケジューラを起動し、「ユーザーがログオンしているかどうかに関わらず実行する」を選択するとよい。

「Win」+「Q」キーを押すなどして検索チャームを開き、テキストボックスに「タスクのスケジュール」と入力し、同名の検索結果をクリック/タップする

先ほど作成したタスクをダブルクリック/タップで開き、「ユーザーがログオンしているかどうかに関わらず実行する」→「OK」ボタンと順にクリック/タップする

パスワードの入力をうながされたら、テキストボックスのパスワードを入力して「OK」ボタンをクリック/タップする

阿久津良和(Cactus)