prompt de comando DIR com curinga retorna resultados inesperados

1

Estou executando o servidor 2003 (service pack mais recente). Quando eu digito isso na linha de comando:

dir 2010 *

ou

 dir 2010*.* 

Eu recebo isso como resultado:

    02/01/2011  02:34 PM             2,460 2011-02-01-14-34-23-807.mdn  
    02/02/2011  08:59 AM             3,757 2011-02-02-08-59-32-604.req  
    02/01/2011  09:16 AM               235 2011-02-01-09-16-35-104.dat  
    02/02/2011  05:06 PM               460 2011-02-02-17-06-05-166.log  
    02/01/2011  03:31 PM            66,570 2011-02-01-15-31-27-838.dat  
    02/01/2011  03:16 PM               145 2011-02-01-15-16-51-135.log  
    02/01/2011  08:52 PM         1,608,916 2011-02-01-20-52-57-416.req
                   7 File(s)      1,682,543 bytes  
                   0 Dir(s)  42,891,452,416 bytes free  

alguém pode me dizer por quê? Eu estava esperando para ver uma lista de apenas arquivos que começam com "2010". não há tais arquivos no diretório, então eu não esperava ver nada. Eu devo entender mal como o DIR lida com curingas ou estou fazendo algo estúpido.

    
por Don Dickinson 03.02.2011 / 15:54

2 respostas

3

Esta resposta em Super User do usuário grawity revela que a resposta está na maneira como o Windows cria nomes de arquivo 8.3 e que o comando DIR examina ambos nomes de arquivos.

Você pode ver o que está acontecendo usando DIR /X para mostrar os nomes de arquivo curtos.

A partir dessa resposta:

When using the NTFS filesystem, 8.3 name creation can be disabled system-wide using:

    fsutil behavior set disable8dot3

However, this won't affect existing names.

    
por 03.02.2011 / 16:38
0

dir / OD irá ordenar a minha data de modo que no equivalente a powershell seria Get-ChildItem | Sort-Object Date e se você incluir algo Where-Object {! $ _. Mode -match "h"} ele deve fazer o truque

    
por 03.02.2011 / 16:10