|
basefilename.extention の「.」が区切りとして機能するのか、と問題を整理
したつもりです。
で、 unix-like tools の新出さんが言う「MS-DOS 本来の」ワイルドカード展
開規則に沿っているのは、command.com でも cmd.exe でもなく、wild.com(16
ビット)であるとの結論を得ました。合ってますでしょうかねぇ? もちろん、
現代において(?)ですけれど。
(「?」は考えてません。 使わないもの。また。拡張子ありとなしを現実的に
使い分ける=同じディレクトリに入れることもあまりないと思うのですけれど…。
少なくとも僕の場合には。)
結論:XPの command.com と cmd.exe の振舞いは同じで、「*」に関するか
ぎり両者とも「.」を区切りとしては認識しないようです。
見て分かると思いますが、C:\WORKディレクトリには、
AAA
AAA.TXT
の2つのファイルが入っています。
---------------------------------------------------
C:\WORK>command.com /cdir *.*
AAA 3 08-10-21 13:48
AAA TXT 7 08-10-21 13:48
C:\WORK>command.com /cdir *
AAA 3 08-10-21 13:48
AAA TXT 7 08-10-21 13:48
C:\WORK>wild -D "sed \"n\"" * #commandは何でもよい。
DEBUG MODE:sed "n" C:\WORK\AAA
C:\WORK>wild -D "sed \"n\"" *.*
DEBUG MODE:sed "n" C:\WORK\AAA
DEBUG MODE:sed "n" C:\WORK\AAA.TXT
C:\WORK>command.com /cdir A*
AAA 3 08-10-21 13:48
AAA TXT 7 08-10-21 13:48
C:\WORK>command.com /cdir A*.*
AAA 3 08-10-21 13:48
AAA TXT 7 08-10-21 13:48
C:\WORK>wild -D "sed \"n\"" A*
DEBUG MODE:sed "n" C:\WORK\AAA
C:\WORK>wild -D "sed \"n\"" A*.*
DEBUG MODE:sed "n" C:\WORK\AAA
DEBUG MODE:sed "n" C:\WORK\AAA.TXT
---------------------------------------------------
※拡張子なしファイルを僕はほとんど作らないし、作らないようにしているの
ですが、wild の「正しい」振舞いには、いつかはまる可能性もあったので、
実験しておいて(忘れなければ)、いちおうよかったかな、と思う。
※もしかして、「.」がディレクトリに入れるようになったあたりから、この
あたりの仕様変更があったのかもしれません。確かVzが拡張子付きディレ
クトリに対応したのも 1.5 以降だったような…。c.mos さんがぶつぶつ言
っていた記憶があります…。関係ないかな???
というわけで(泥沼だぁ〜)、思いついたら実験。 新たに「aaa.aaa」なるサ
ブディレクトリを作ってみた。(cmd.exe はここでは大小文字を無視? うーん、
えーと、えー???)
C:\WORK>command.com /cdir a*
AAA 3 08-10-21 13:48
AAA AAA <DIR> 08-10-21 14:17
AAA TXT 7 08-10-21 13:48
C:\WORK>command.com /cdir a*.*
AAA 3 08-10-21 13:48
AAA AAA <DIR> 08-10-21 14:17
AAA TXT 7 08-10-21 13:48
cmd.exe, command.comに違いなし。
何かがわかったのだろうか? wildの挙動は確認できましたけれど…。
トホホ・マン・文太
(あまり意味のない)追伸:「*.*」ってのを最初にワイルドカードとして覚
えた記憶があり(MS-DOS3.3D時代)、で「*.*」と「*」に違いがある・あった
のだろうというところから出発しました。
|
|