フォルダ内のファイル:
a.j
ab.jp
abc.jpg
abcd.jpeg
dir
コマンドの結果:
Command Result (Files shown)
---------- --------------------
dir ?.* a.j
dir ??.* a.j, ab.jp
dir ???.* a.j, ab.jp, abc.jpg
dir ????.* a.j, ab.jp, abc.jpg, abcd.jpeg
したがって、単一の?
が表示されます。これは「0または1文字」を意味します。
dir
コマンドの結果が増えました:
Command Result (Files shown)
---------- --------------------
dir *.? a.j
dir *.?? a.j, ab.jp
dir *.??? a.j, ab.jp, abc.jpg, abcd.jpeg --> What is this?!
dir *.???? a.j, ab.jp, abc.jpg, abcd.jpeg
3番目のコマンドで、なぜ???
がjpeg
を表示しているのですか?説明できますか?このバグはcmdにありますか?
これは、3つの疑問符がファイル名の短いバージョンの拡張子と一致するために発生します。使用する
dir /x
ファイル名の短いバージョンを表示(および操作)します。
3文字を超える拡張子の問題について:これは、短いファイル名の作成方法が原因です。レジストリで Win95TruncatedExtensions
を設定することで、これを解決できます。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"Win95TruncatedExtensions"=dword:00000000
NTFSおよびFATが8.3命名規則に従って新しいファイルのファイル名を生成するかどうかを指定します。
このエントリの値を1に設定しても、既存のファイル名拡張子は変更されません。また、これらの拡張子が検索、ファイルマネージャー、またはWindowsエクスプローラーによって表示または管理される方法も変更されません。ただし、NTFSとFATは新しいファイルの短い名前を生成し、ファイル名拡張子の3番目の文字を切り捨てます。
デフォルト値は1です
ただし、これは新しく作成またはコピーされたファイルにのみ影響することに注意してください。
(ハードディスク上のすべてのファイルをコピーする場合があります。このレジストリ設定は、Windowsシステムをインストールするときの最初のアクションの1つとして実行する必要があります。)
コマンドプロンプトは、短いファイル名システムを使用します。つまり、ファイルのポイントの前に8文字を超える場合、最初の6文字が+ 〜1で使用されます。の後ろに4文字以上を使用する場合も同様です。次に、拡張子の最初の3文字を使用し、ファイルに別の名前を付けます(最初の6 + 〜1)。したがって、.jpeg
ファイルはコマンドプロンプトに??????~1.jpe
として表示され、*.???
と一致します。
dir /x
を使用して、ファイル名が短いファイルを表示します。