可能性のある重複:
WinXP dirコマンド:3と4文字の拡張子は同じですか?
私は長い間(少なくともWinXPとWindows7)cmd.exeの奇妙な動作に悩まされてきました。のようなコマンドdel *.txtも*.txt1ファイルを削除します( '.txt'の後の任意の数の文字が削除されます)。これはよく知られたバグですか?
可能性のある重複:
WinXP dirコマンド:3と4文字の拡張子は同じですか?
私は長い間(少なくともWinXPとWindows7)cmd.exeの奇妙な動作に悩まされてきました。のようなコマンドdel *.txtも*.txt1ファイルを削除します( '.txt'の後の任意の数の文字が削除されます)。これはよく知られたバグですか?
回答:
それはたまに出会う、幾分知られていますか?
概要:これは、NTFSが短い(8.3)ファイル名を処理する方法に由来します。これは、「複雑な」長いファイル名を処理できない古いものとの互換性のためです。 dir /x次のように、短いファイル名を表示するために使用できます。
C:\>dir /x *~*
...
02/25/2011 08:18 AM <DIR> DOCUME~1 Documents and Settings
05/28/2011 12:02 AM <DIR> PROGRA~1 Program Files
...
3文字より長い拡張子は、短いファイル名では単に切り捨てられます。そう.txt1、.txtxtxtxt、.txt_file、など、すべてになります.txt。
拡張子が4文字を超えるファイル(もちろん他のルールも適用されます)は、短い名前を取得します。たとえば、「foo.txt1」は「foo〜1.txt」という短い名前になります。DEL(DIRそしておそらく他のほとんどのcmd.exe組み込みコマンドのように)もショートネームで動作します。関連トピックのディスカッションについては、こちらをご覧ください:http : //blogs.msdn.com/b/oldnewthing/archive/2005/07/20/440918.aspx
これはFAT / VFATファイルシステムにありますか?もしそうなら、8.3スキーマに適合しない名前を表すために使用されるハッカーに噛まれることになります。DIRマングルされた短い名前を表示するオプションがあります。これは、実際のファイル名で始まりますが~、拡張子の前にa と数字があり、拡張子は3文字で制限されます。(例: C:\Program Files通常はに変換されC:\PROGRA~1ます。)ワイルドカードは、これらの名前に予期せず一致する場合があります。 これは、NTFSまたは(おそらく)ネットワーク共有では発生しません。DOSがまだ死んでいないことを除いて、それはそうです...