So finden Sie unter Windows problemlos Dateien ohne Erweiterung

So finden Sie unter Windows problemlos Dateien ohne Erweiterung

Auf meiner Festplatte befinden sich einige Dateien ohne jegliche Erweiterung. Sie manuell zu finden, ist sehr schwierig. Mir gefällt die Tatsache nicht, dass ich meine Maus früher ersetzen müsste, da die Hardware zwar nicht sehr stark, aber dennoch stark beschädigt ist, weil ich ständig klicke und scrolle und versuche, diese Dateien zu finden, da es sich um ein paar Hundert von Tausenden von Dateien in einem einzigen Ordner handelt.

Kennt hier jemand einen cmdoder PowerShellBefehl oder eine erweiterte Abfragesyntax für die Windows Explorer-Suche, um diese Aufgabe zu vereinfachen?

Antwort1

Suchen von Dateien ohne Dateierweiterungen unter Windows

Windows Explorer – Erweiterte Abfragesyntax

GemäßPetSerAlhier sind einige derErweiterte Abfragesyntax für den Datei-ExplorerMethode, aber lesen Sie weiter unten für die entsprechendeBefehlszeileUndBatch-SkriptMethoden für diese Aufgabe.

Rekursive Suche

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

Nicht rekursiv

Wählen Sie dazu einfach das "Aktueller Ordner" Option über die GUI "SuchenRegisterkarte "

Bildbeschreibung hier eingeben

oder

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

Sie können einfür /fSchleife, die die Ausgabe einesdirBefehl mit den /BParametern /A-Dund und verwenden Sie dann einige bedingteWennLogik, um nur Dateien ohne Erweiterungen auszugeben, indem Ersetzungen für die iterierten Dateien im angegebenen Verzeichnis verwendet werden.

Befehlszeile

Notiz: Dies setzt voraus, dass das Verzeichnis, in dem Sie sich in der Befehlszeile befinden, das Verzeichnis ist, das Sie durchsuchen müssen, um die Dateien ohne Erweiterungen anzuzeigen.

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

Batch-Skript

Notiz: Dies ist ein Batch-Skript, bei dem Sie den SET Src=Wert auf das Verzeichnis festlegen, in dem Sie suchen müssen, um Dateien ohne Erweiterungen anzuzeigen.

@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

Weitere Ressourcen

  • Für /F
  • FOR /?

    Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:

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

  • Wenn

Antwort2

Für die PowerShell-Lösung:

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

Oder:

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

Beachten Sie, dass der -FileParameter PowerShell v3+ erfordert.

Antwort3

Geben Sie in der Eingabeaufforderung einfach Folgendes ein *.:

C:\Verzeichnisname> dir

24.08.2018 03:33 Uhr .
24.08.2018 03:33 Uhr ..
24.08.2018 03:33 Uhr 16 Uhr
24.08.2018 03:33 Uhr 18 v. Chr.
24.08.2018 03:33 Uhr 20 def
               3 Datei(en) 54 Bytes

C:\Verzeichnisname> Verzeichnis *.

24.08.2018 03:33 Uhr .
24.08.2018 03:33 Uhr ..
24.08.2018 03:33 Uhr 16 Uhr
               1 Datei(en) 16 Bytes

C:\Verzeichnisname>

Denken Sie daran, dass die Windows-Eingabeaufforderung kein Unix ist. In Unix-Dateinamen ist ein Punkt (.) ist ein ganz normales Zeichen (mit Ausnahme der Tatsache, dass Dateinamen, die mit einem Punkt beginnen, ausgeblendet werden). Unter Unix *e*bedeutet alle Dateinamen, die ein enthalten e, und *.*bedeutet alle Dateinamen, die(ausdrücklich)enthalten eine..

Die Regeln für die Eingabeaufforderung sind komplizierter.  *bedeutet alle Dateinamen (auch solche mit einer Erweiterung). Und *.*bedeutet auch alle Dateinamen (auch solche, die keine.). *.Gemeint sind damit aber alle Dateinamen ohne Erweiterung.

Antwort4

ls | ? {$_.Extension -eq ''}

Dies verwendet die maximale Kurzschrift. Aber es ist eigentlich der gleiche Code wie @BaconBits. Ich bevorzuge Kurzschrift. Es ist für Anfänger schwieriger zu lesen, aber ausdrucksvoller und prägnanter

verwandte Informationen