Jak łatwo znaleźć pliki bez rozszerzenia za pomocą systemu Windows

0

Mam kilka plików na moim dysku twardym, które nie mają żadnych rozszerzeń. Bardzo trudno jest je znaleźć ręcznie, naprawdę nie podoba mi się fakt, że musiałbym wcześniej zastąpić mysz ze względu na niezbyt duże, ale bardzo widoczne uszkodzenia, które sprzęt wyrządził, próbując znaleźć te pliki przez cały czas klikanie i przewijanie, ponieważ są to kilkaset plików z tysięcy w jednym folderze.

Czy ktoś tutaj wie o cmd lub PowerShell komendę lub niektóre wyszukiwania w Eksploratorze Windows zaawansowaną składnię zapytań, aby ułatwić to zadanie?

computationalprince
źródło
Jakie jest pytanie?
Toto
żartujesz z tym tekstem Lorem Ipsum?
SimonS
1
Poszukiwacz: kind:= -folder extension:= "".
PetSerAl
@PetSerAl nie działa niestety (próbował też go ulepszyć, zamieniając, ale nic).
computationalprince
1
@computationalprince Wydaje się, że działa tylko w lokalizacjach indeksowanych. Powinno to działać również w lokalizacjach niezindeksowanych: kind:= -folder type:= -[] extension:= [].
PetSerAl

Odpowiedzi:

5

Wyszukiwanie plików bez rozszerzeń plików w systemie Windows

Eksplorator Windows - zaawansowana składnia zapytań

Jak na PetSerAl oto niektóre z nich Zaawansowana składnia zapytań Eksploratora plików metoda, od której można zacząć, ale czytaj dalej w poszukiwaniu odpowiednika Wiersz poleceń i Skrypt wsadowy metody tego zadania.

Wyszukiwanie rekurencyjne

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

Nierekursywne

Po prostu wybierz „ Obecny folder „opcja przez GUI” Szukaj „karta

enter image description here

lub

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

Możesz użyć a dla / f pętla iteruje wyjście a reż polecenie z /B i /A-D parametry, a następnie użyj warunkowego Jeśli logika tylko do wysyłania plików bez żadnych rozszerzeń przy użyciu podstawień dla iterowanych plików w określonym katalogu.

Wiersz poleceń

Uwaga: Zakłada to, że katalog, w którym się znajdujesz w linii poleceń, jest katalogiem, w którym musisz szukać, aby wyświetlić pliki bez rozszerzeń.

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

Skrypt wsadowy

Uwaga: Jest to skrypt wsadowy, który ustawiasz SET Src= wartość jako katalog, który należy wyszukać, aby wyświetlić pliki bez rozszerzeń.

@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

Dalsze zasoby

  • Dla / F
  • FOR /?

    Ponadto zastąpiono odniesienia do zmiennej FOR   ulepszony. Możesz teraz użyć następującej opcjonalnej składni:

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

  • Jeśli
Pimp Juice IT
źródło
Z punktu widzenia CMD każda nazwa pliku zawierającego kropkę ma rozszerzenie, nawet jeśli nie jest to jedna. Warto więc sprawdzić poprawność rozszerzenia pod względem długości lub treści. (Assoc wyświetli listę znanych rozszerzeń)
LotPings
1
Łatwo jest przełączać się między wyszukiwaniem rekurencyjnym / nierekurencyjnym GUI .
PetSerAl
1
(1) Pytanie nie określa wersji systemu Windows. Windows7 i wcześniejsze nie mają Eksploratora plików; Eksplorator Windows (wyraźnie wskazany przez OP) nie ma wstążki ani niczego podobnego do wyświetlanej karty „Wyszukaj”. (2) FYI, mogę potwierdzić, że kind:= -folder type:= -[] extension:= [] Advanced Query Syntax działa w systemie Windows 7. Ale tak jest kind:-folder type:-[] extension:[] - nie potrzebujesz = znaki (lub spacje po nich). W rzeczywistości, kind:-folder extension:[] i type:-folder extension:[] wydają się być wystarczająco dobre. … (Cont)
Scott
1
(Cont ”d)… (3) Kiedy dir /B * /A-D dać inny wynik niż dir /B /A-D (tj. kiedy dir * dać inny wynik niż dir )?
Scott
1

Dla rozwiązania PowerShell:

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

Lub:

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

Zauważ, że -File parametr wymaga PowerShell v3 +.

Bacon Bits
źródło
0

W wierszu polecenia po prostu użyj *.:

C: nazwa katalogu  & gt; reż

24.08.2013 03:33.
24.08.2013 03:33 ..
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 pliki 54 bajty

DO:  nazwa katalogu  & gt; reż *.

24.08.2013 03:33.
24.08.2013 03:33 ..
08/24/2018 03:33 AM 16 a
               1 plik (i) 16 bajtów

DO:  nazwa katalogu  & gt; 

Pamiętaj, że wiersz polecenia systemu Windows nie jest Uniksem. W nazwach plików Unixowych kropka ( . ) to zwykła postać (z wyjątkiem faktu, że nazwa pliku zaczynająca się od kropki jest ukryta). W Uniksie *e* oznacza wszystkie nazwy plików zawierające e, i *.* oznacza wszystkie nazwy plików, które (wyraźnie) zawierać a ..

Zasady dotyczące wiersza poleceń są trudniejsze. * oznacza wszystkie nazwy plików (nawet te z rozszerzeniem). I *.* oznacza również wszystkie nazwy plików (nawet te, które nie zawierają . ). Ale *. oznacza wszystkie nazwy plików, które nie mają rozszerzenia.

Scott
źródło
0
ls | ? {$_.Extension -eq ''}

To używa maksymalnego skrótu. Ale to naprawdę ten sam kod, co @BaconBits. Wolę stenografia. Trudniej jest czytać dla początkujących, ale bardziej wyrazisty i zwięzły

Justin
źródło
2
Powodem, dla którego mamy minimalną długość odpowiedzi, jest to, że oczekujemy, że każdy post będzie miał trochę poziom wyjaśnienia i / lub komentarz.
Scott