[System Environment] | |||||||||||||||
8.3形式の短いファイル名を生成しないようにする
|
|||||||||||||||
|
解説 |
現在のWindows OSのファイル・システムでは、最大255文字までの長いファイル名やフォルダ名をサポートしているが(大文字小文字の違いは無視される)、初期のWindowsやその前身となるMS-DOSでは、いわゆる「8.3形式」の短い名前しか利用できなかった。さすがにこれでは不便なため、その後長い名前も扱えるようにファイル・システムが拡張されたが、互換性のために、長い名前と同時に、内部的には短い名前も保持している。つまり1つのファイルに対して、長い名前と短い名前の両方が付けられている(ただし8.3以下に収まる場合は、両者は一致する)。
2種類のファイル名を記録するため、若干ではあるが、パフォーマンスが低下するし、ディスク領域も多く必要になる。
また短い名前は、長い名前をベースにして、例えば「long file name log.log」→「LONGFI~1.LOG」というふうに、元のファイル名の一部に数字などを付けて生成されている。そのため、数値などを使ってワイルドカード指定してファイルを検索すると、思わぬファイルがマッチすることがある。
C:\Document>dir *3.log |
ここではファイル名の末尾が「3」であるファイルを検索するために、「dir *3.log」というコマンドを実行しているが、よく見ると「serverlog-1309719411.log」のように、末尾が「3」でないファイルも表示されている。その理由は、通常は表示されない短い名前の末尾に「3」が含まれているからである。短い名前がどうなっているかを確認するには、dirコマンドに「/x」オプションを付けて実行すればよい(TIPS「8.3形式の短いファイル名を表示させる」)。
C:\Document>dir *3.log /x |
このような影響を避けるためには、8.3形式の短い名前の作成を抑止すればよい。このためには、TIPS「ファイルの最終アクセス日時の更新を無効にしてディスクへの書き込みを抑える」でも紹介したfsutil.exeコマンドを使って、システムの設定を変更すればよい。
操作方法 |
8.3形式のファイル名を作成するかどうかの確認
8.3形式のファイル名の作成を抑止するには、「fsutil behavior」コマンドを利用する。まず現在の状態を把握するために、「fsutil behavior query disable8dot3」を実行する。
C:\WINDOWS\system32>fsutil behavior query /? …ヘルプの表示 |
ここでは結果が0なので、「8.3形式のファイル名の作成の抑止」は無効(つまり作成する)になっている。
8.3形式のファイル名の作成を抑止する
8.3形式のファイル名の作成を抑止するには、上記の変数の値を1にセットすればよい。
C:\WINDOWS\system32>fsutil behavior set disable8dot3 1 …8.3形式作成の抑止 |
上記の設定後、システムを一度再起動する。すると以後は、8.3形式のファイル名は作成されなくなる。ただしすでに作成されているファイル名のエントリから、8.3形式の短い名前を消去することはできないし、この設定は全ボリュームで有効となる。
Windows 7/Windows Server 2008 R2での機能拡張
Windows 7やWindows Server 2008 R2ではこの8.3形式の名前の抑止機能が拡張され、システム全体ではなく、ボリュームごとに設定できるようになった。また既存の8.3形式の名前を検証したり、削除したりできるようにもなっている。この機能拡張に伴い、「fsutil behavior set/query 〜」だけでなく、「fstuil 8dot3name 〜」というサブコマンドが追加されている。
C:\>fsutil 8dot3name /? …新しいコマンドのヘルプ |
8.3形式の名前の作成は、デフォルトでは、システム全体とボリュームの両方で有効になっている。システム全体で無効にしたり、ボリュームごとに無効にしたりするには、「fsutil 8dot3name set」コマンドを使う。
C:\>fsutil 8dot3name set …ヘルプの表示 |
「fsutil 8dot3name set 0」が以前のWindows OSにおけるデフォルト値、「fsutil 8dot3name set 2」がWindows 7/Windows Server 2008 R2以降のOSにおけるデフォルト値となっている。ボリュームを指定すると、そのボリュームでのみ有効/無効になる。
Windows 7/Windows Server 2008 R2における8.3形式の名前の削除
Windows 7やWindows Server 2008 R2では、すでにファイル・システム中に記録されている8.3形式の名前を削除することができる。このためにはまず「fsutil 8dot3name scan」コマンドで、レジストリ中に8.3形式の名前が含まれていないかどうかをチェックする。もし8.3形式の名前で参照しているレジストリ・エントリがあると、それに関連するサービスやプログラムの実行が失敗する可能性があるからだ。
C:\>fsutil 8dot3name scan /? …ヘルプの表示 |
これ以外にも、各アプリケーションに影響が出ないかどうかをあらかじめ十分検証しておく必要がある。
問題がなさそうなら、「fsutil 8dot3name strip」コマンドで削除する。ただしその場合でも、まず/tオプション(テスト・モードの指定)を付けてテストしてから行うのが望ましい。
C:\>fsutil 8dot3name strip /? …ヘルプの表示 |
この記事と関連性の高い別の記事
- Widnowsで8.3形式の短いファイル名を表示させる(TIPS)
- Windowsで巨大なサイズのファイルを簡単に作る方法(TIPS)
- Windowsでファイルの最終アクセス日時の更新を無効にしてディスクへの書き込みを抑える(TIPS)
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
- volrestコマンドでシャドウ・コピーから以前のバージョンのファイルを取り出す(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|