O nome e a extensão do arquivo tem sido um campo único desde que o Windows 95 e o NT 3.5 introduziram o suporte ao "nome longo do arquivo" e as correspondências curinga são feitas para o nome do arquivo inteiro de uma só vez. Como resultado, você pode ter um nome de arquivo sem pontos (talvez raro para arquivos, mas muito comum para pastas / diretórios) e, à primeira vista, *.*
não corresponderia realmente a tais arquivos.
Os scripts antigos que usam *.*
ainda funcionarão devido ao código de compatibilidade - se o caractere curinga terminar com .*
, essa parte será ignorado pelo sistema operacional. (Então, se você quisesse combinar especificamente arquivos com uma extensão, eu acho que você precisaria *.?*
para isso.)
Mas não é algo em que você deva confiar; Se você estiver escrevendo scripts para versões modernas do Windows, siga suas convenções, não convenções do MS-DOS. (Observe que, a partir do Windows NT, os scripts .bat não são mais interpretados pelo MS-DOS, mas por cmd.exe
, um programa nativo do Win32.)
No Linux e em vários outros Unixen, nome & extensão nunca foi separada em primeiro lugar, e não existe qualquer magia especial para fazer *.*
funcionar, então *
é a única escolha que faz sentido.