cmd tem bug curinga? [duplicado]


3

Esta pergunta já tem uma resposta aqui:

Arquivos na pasta:

a.j
ab.jp
abc.jpg
abcd.jpeg

dir resultados do comando:

Command       Result (Files shown)
----------    --------------------
dir ?.*       a.j
dir ??.*      a.j, ab.jp
dir ???.*     a.j, ab.jp, abc.jpg
dir ????.*    a.j, ab.jp, abc.jpg, abcd.jpeg

Então, podemos ver um único ?, significa "0 ou 1 letra".

Agora, mais dirresultados de comando:

Command       Result (Files shown)
----------    --------------------
dir *.?       a.j
dir *.??      a.j, ab.jp
dir *.???     a.j, ab.jp, abc.jpg, abcd.jpeg --> What is this?!
dir *.????    a.j, ab.jp, abc.jpg, abcd.jpeg

No terceiro comando, por que ???está mostrando jpeg? Você pode explicar? Esse bug está no cmd?


3
É preciso perguntar a si mesmo. O que é mais provável. Um bug em um programa que não mudou em funcionalidade desde que foi introduzido pela primeira vez ou o próprio usuário entende incorretamente como o comando funciona?
Ramhound

@ Ramhound: Isso pode não ser um bug, mas certamente você não está sugerindo que o cmd não tem bugs? :) Existem todos os tipos de casos extremos estranhos e comportamento não documentado. Está tudo bem, mas mal foi tocado até o Win10, que adicionou alguns novos recursos cosméticos, mas não acho que os bugs foram corrigidos.
Karan

@Karan Eu nunca disse que não poderia ser um bug simplesmente não sugeriu a compreensão de como uma característica trabalhada é mais provável considerando prompt de comando não mudou em idades
Ramhound

Respostas:


7

Isso está acontecendo porque os três pontos de interrogação correspondem à extensão da versão curta do nome do arquivo. Usar

dir /x

para mostrar (e trabalhar com) versões curtas de nomes de arquivos.


11
Esse parece ser o motivo correto, que pode ser confirmado usando o que o snoopy escreveu.
Karan

11
Tenho certeza de que é a resposta. Uma vez eu digitei dire descobri que havia alguns arquivos que eu queria remover 1no final do nome, então digitei del ???????1.*apenas para descobrir que a maioria dos arquivos com nomes longos também foram excluídos! Felizmente, mantenho cópias de segurança copiosas, mas é um erro que se comete apenas uma vez.
AFH

2

Sobre o problema de extensões com mais de três caracteres: Isso é causado pela maneira como os nomes curtos dos arquivos são criados. Você pode resolver isso definindo Win95TruncatedExtensionsno registro:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"Win95TruncatedExtensions"=dword:00000000

Especifica se NTFS e FAT geram nomes de arquivos para novos arquivos com a convenção de nomenclatura 8.3.

Definir o valor dessa entrada como 1 não altera nenhuma extensão de nome de arquivo existente, nem altera a maneira como essas extensões são exibidas ou gerenciadas pelo Find, File Manager ou Windows Explorer. No entanto, faz com que NTFS e FAT gere nomes abreviados para novos arquivos e trunque o terceiro caractere das extensões de nome de arquivo.

O valor padrão é 1

insira a descrição da imagem aqui

Mas lembre-se de que isso afetará apenas os arquivos recém-criados ou copiados.

(você pode copiar todos os arquivos no seu disco rígido. Você deve fazer essa configuração do registro como uma das primeiras ações ao instalar um sistema Windows.)


1

O prompt de comando usa o sistema de nome de arquivo curto. Isso significa que quando um arquivo tiver mais de 8 caracteres antes do ponto, os 6 primeiros serão usados ​​+ ~ 1. O mesmo se aplica quando você usa 4 caracteres ou mais atrás do. Em seguida, ele usará os 3 primeiros caracteres da extensão e nomeará o arquivo de maneira diferente (primeiros 6 + ~ 1). Portanto, um .jpegarquivo está sendo visto no prompt de comando ??????~1.jpee, como tal, corresponderá*.???

Use dir /xpara ver arquivos com seu nome de arquivo curto.


dir / x mostra .JPEG como .JPE, portanto, sua afirmação de que é vista como .J ~ 1 parece incorreta.
Karan

@ Karan ah, você está certo. ele altera o primeiro nome para ~ 1 e usa os 3 primeiros da extensão. Tnx. Irá corrigi-lo.
LPChip
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.