Como encontrar facilmente arquivos sem extensão usando o Windows

0

Eu tenho alguns arquivos no meu disco rígido que não têm nenhuma extensão. É muito difícil encontrá-los manualmente, eu realmente não gosto do fato de que eu precisaria substituir meu mouse mais cedo por causa do dano não muito grande, mas ainda muito proeminente, feito ao hardware de tentar encontrar esses arquivos constantemente clicando e rolando, pois são algumas centenas de arquivos em milhares em uma única pasta.

Alguém aqui sabe de um comando cmd ou PowerShell ou alguma sintaxe de consulta avançada da pesquisa do Windows Explorer para ajudar a simplificar essa tarefa?

    
por computationalprince 09.04.2018 / 11:25

4 respostas

5

Localizando arquivos sem extensões de arquivos no Windows

Windows Explorer - Sintaxe de consulta avançada

De acordo com PetSerAl , aqui estão algumas das Consultas Avançadas do File Explorer Sintaxe para começar, mas leia mais abaixo para os métodos equivalentes Linha de Comando e Script em Lote para esta tarefa.

Pesquisa recursiva

kind:= -folder type:= -[] extension:= []

Não recursivo

Basta selecionar a opção " Pasta atual " através da guia " Pesquisa " da GUI

ou

kind:=-foldertype:=-[]extension:=[]folder:"C:\folder\path"

Você pode usar um loop para / f iterando a saída de um dir comando com os parâmetros /B e /A-D e, em seguida, use alguns condicionais se lógico apenas para saída de arquivos sem nenhuma extensão usando substituições para os arquivos iterados no diretório especificado.

Linha de Comando

Nota: Isto assume que o diretório em que você está na linha de comando é o diretório que você precisa pesquisar para exibir os arquivos sem extensões.

FOR /F "TOKENS=*" %A IN ('dir /B * /A-D') DO IF /I [%~nxA]==[%~nA] ECHO %~A

Script em lote

Nota: Este é um script em lote que você define o valor SET Src= para ser o diretório que você precisa pesquisar para exibir arquivos sem extensões.

@ECHO ON
SET Src=C:\folder\path
FOR /F "TOKENS=*" %%A IN ('DIR /B "%Src%\*" /A-D') DO IF /I [%%~nxA]==[%%~nA] ECHO %%~A
PAUSE
EXIT

Mais recursos

  • Para / F
  • FOR /?

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • Dir

  • Se
por 09.04.2018 / 14:56
1

Para a solução do PowerShell:

Get-ChildItem -Path $Path -Recurse -File -Filter '*.'

Ou:

Get-ChildItem -Path $Path -Recurse -File | Where-Object Extension -eq ''

Observe que o parâmetro -File requer o PowerShell v3 +.

    
por 16.04.2018 / 14:35
0

No Prompt de Comando, use apenas *. :

C:\directory\name> dir

08/24/2018  03:33 AM              .
08/24/2018  03:33 AM              ..
08/24/2018  03:33 AM                16 a
08/24/2018  03:33 AM                18 b.c
08/24/2018  03:33 AM                20 d.e.f
               3 File(s)             54 bytes

C:\directory\name> dir *.

08/24/2018  03:33 AM              .
08/24/2018  03:33 AM              ..
08/24/2018  03:33 AM                16 a
               1 File(s)             16 bytes

C:\directory\name>

Lembre-se de que o Prompt de Comando do Windows não é Unix. Em nomes de arquivos Unix, o ponto ( . ) é apenas um caractere comum (exceto pelo fato de que nome de arquivo que começam com ponto estão ocultos). No Unix, *e* significa todos os nomes de arquivos que contêm e , e *.* significa todos os nomes de arquivos que (explicitamente) contêm um . .

As regras para o prompt de comando são mais complicadas. * significa todos os nomes de arquivos (mesmo aqueles com uma extensão). E *.* também significa todos os nomes de arquivos (mesmo aqueles que não contêm um . ). Mas *. significa todos os nomes de arquivos que não possuem uma extensão.

    
por 24.08.2018 / 05:55
0
ls | ? {$_.Extension -eq ''}

Isso usa taquigrafia máxima. Mas é o mesmo código que @BaconBits realmente. Eu prefiro taquigrafia. É mais difícil de ler para iniciantes, mas mais expressivo e sucinto

    
por 24.08.2018 / 04:43