![Cómo encontrar fácilmente archivos sin extensión usando Windows](https://rvso.com/image/1558051/C%C3%B3mo%20encontrar%20f%C3%A1cilmente%20archivos%20sin%20extensi%C3%B3n%20usando%20Windows.png)
Tengo algunos archivos en mi disco duro que no tienen extensión alguna. Es muy difícil encontrarlos manualmente, realmente no me gusta el hecho de que tendría que reemplazar mi mouse antes debido al daño no enorme, pero sí muy prominente, causado al hardware al intentar encontrar esos archivos constantemente. haciendo clic y desplazándose, ya que son unos cientos de archivos entre miles en una sola carpeta.
¿Alguien aquí conoce un comando cmd
o PowerShell
, o alguna sintaxis de consulta avanzada de búsqueda del Explorador de Windows para ayudar a simplificar esta tarea?
Respuesta1
Encontrar archivos sin extensiones de archivo con Windows
Explorador de Windows: sintaxis de consulta avanzada
segúnPetSerAlaquí están algunos de losSintaxis de consulta avanzada del Explorador de archivosmétodo para empezar, pero lea más abajo para conocer el equivalenteLínea de comandoyGuión por lotesmétodos para esta tarea.
Búsqueda recursiva
kind:= -folder type:= -[] extension:= []
No recursivo
Simplemente seleccione "Carpeta actual"opción a través de la GUI"Buscar" pestaña
o
kind:= -folder type:= -[] extension:= [] folder:"C:\folder\path"
Puedes usar unpara /fbucle que itera la salida de undirectoriocomando con los parámetros /B
y /A-D
, y luego use algún condicionalsilógica para generar solo archivos sin extensiones utilizando sustituciones para los archivos iterados en el directorio especificado.
Línea de comando
Nota: Esto supone que el directorio en el que se encuentra en la línea de comando es el directorio que necesita buscar para mostrar los archivos sin extensiones.
FOR /F "TOKENS=*" %A IN ('dir /B * /A-D') DO IF /I [%~nxA]==[%~nA] ECHO %~A
Guión por lotes
Nota: Este es un script por lotes en el que usted establece el SET Src=
valor como el directorio en el que necesita buscar para mostrar archivos sin extensiones.
@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
Recursos adicionales
Respuesta2
Para la solución PowerShell:
Get-ChildItem -Path $Path -Recurse -File -Filter '*.'
O:
Get-ChildItem -Path $Path -Recurse -File | Where-Object Extension -eq ''
Tenga en cuenta que el -File
parámetro requiere PowerShell v3+.
Respuesta3
En el símbolo del sistema, simplemente use *.
:
C:\nombre del directorio> directorio 24/08/2018 03:33 . 24/08/2018 03:33 .. 24/08/2018 03:33 16a 24/08/2018 03:33 18 a.C. 24/08/2018 03:33 20 def 3 Archivo(s) 54 bytes C:\nombre del directorio>directorio*. 24/08/2018 03:33 . 24/08/2018 03:33 .. 24/08/2018 03:33 16a 1 archivo(s) 16 bytes C:\nombre del directorio>
Recuerde, el símbolo del sistema de Windows no es Unix. En nombres de archivos Unix, punto (.
) es sólo un carácter normal (excepto por el hecho de que los nombres de archivo que comienzan con un punto están ocultos). En Unix, *e*
significa todos los nombres de archivos que contienen un e
y *.*
significa todos los nombres de archivos que(explícitamente)contener un.
.
Las reglas del símbolo del sistema son más complicadas.
*
significa todos los nombres de archivos (incluso los que tienen una extensión). Y *.*
también significa todos los nombres de archivos (incluso aquellos que no contienen un.
). Pero *.
significa todos los nombres de archivos que no tienen extensión.
Respuesta4
ls | ? {$_.Extension -eq ''}
Esto utiliza la taquigrafía máxima. Pero en realidad es el mismo código que @BaconBits. Prefiero la taquigrafía. Es más difícil de leer para principiantes pero más expresivo y conciso.