Nama file dan ekstensi telah menjadi bidang tunggal sejak Windows 95 dan NT 3.5 memperkenalkan dukungan "nama file panjang", dan kecocokan wildcard dilakukan terhadap seluruh nama file sekaligus. Akibatnya, Anda dapat memiliki nama file tanpa titik di dalamnya (mungkin jarang untuk file, tetapi sangat umum untuk folder / direktori) dan sekilas *.*
tidak akan benar-benar cocok dengan file tersebut.
Penggunaan skrip lama masih *.*
akan berfungsi karena kode kompatibilitas - jika wildcard berakhir dengan .*
, bagian itu diabaikan oleh OS. (Jadi jika Anda ingin secara khusus mencocokkan file dengan ekstensi, saya kira Anda perlu *.?*
melakukannya.)
Tapi itu bukan sesuatu yang harus Anda andalkan; jika Anda menulis skrip untuk versi Windows modern, ikuti konvensi mereka, bukan konvensi MS-DOS. (Perhatikan bahwa pada Windows NT, skrip .bat tidak ditafsirkan oleh MS-DOS lagi tetapi oleh cmd.exe
, program Win32 asli.)
Di Linux dan berbagai Unixen lainnya, nama & ekstensi tidak pernah terpisah sejak awal, dan tidak ada keajaiban khusus untuk *.*
bekerja, jadi *
adalah satu-satunya pilihan yang masuk akal.
*
dan*.*
sekarang setara untukcmd
perintah internal dan utilitas baris perintah modern, beberapa utilitas yang lebih tua yang mengambil parameter mask file dapat menggunakan fungsi pencocokan file yang lebih lama, dan bagi mereka masker tidak akan setara.