czy mogę używać CMD do wyszukiwania plików w systemie Windows?

27

Chcę, aby polecenie szukało pliku w katalogu i wszystkich podkatalogach w systemie Windows za pomocą wiersza polecenia. Widziałem wszystkie dostępne polecenia, ale nie mogłem znaleźć odpowiedniego polecenia do wykonania tej operacji.

Wael Dalloul
źródło

Odpowiedzi:

36

W wierszu polecenia (wiersz poleceń) wpisz:

dir /S /P "Path\FileName"

Jeśli chcesz zapisać wyniki w pliku tekstowym:

dir /S "Path\FileName" > "Path\ResultFilename"
Matan Eldan
źródło
3
Jeśli plik jest ukryty lub plik systemowy, możesz również dołączyć parametr / a! 8-)
Richard Lucas
Trochę więcej informacji: /swykonuje wyszukiwanie, podczas gdy wyświetlane są /ppauzy po wyświetleniu wyników wartych ekranu. Aby uzyskać więcej opcji, możesz to zrobić dir /?.
Łukasz
1
Ta /sopcja nie „wyszukuje”. Rozszerza to dirpolecenie - które domyślnie wyświetla listę plików w bieżącym folderze - także na wszystkie te pliki w podfolderach. Rozszerza dirto zakres polecenia, aby wyświetlał absolutnie wszystko na dysku lub w folderze, a nie ograniczał się do bieżącego.
Hashim
16

użyj /bprzełącznika, aby dirwydrukować pełną ścieżkę, może być pomocne. mówić,C:\ > dir /b /s *file*.*

nadal możesz filtrować wynik za pomocą findlub fori przekierowywać dane wyjściowe do pliku za pomocą>filename

Jokester
źródło
2

dirnie był przeznaczony do wyszukiwania plików, ale do wyświetlania katalogów, ale teraz jest taki, wherektórego można użyć do wyszukiwania wielu typów plików jako where /R c:\Users *.dll *.exe *.jpg

sprawdź pełną składnię i odpowiedź na pytanie Jak wykonać proste wyszukiwanie plików w cmd

WHERE [/R dir] [/Q] [/F] [/T] pattern...

Description:
    Displays the location of files that match the search pattern.
    By default, the search is done along the current directory and
    in the paths specified by the PATH environment variable.

Parameter List:
    /R       Recursively searches and displays the files that match the
             given pattern starting from the specified directory.

    /Q       Returns only the exit code, without displaying the list
             of matched files. (Quiet mode)

    /F       Displays the matched filename in double quotes.

    /T       Displays the file size, last modified date and time for all
             matched files.

    pattern  Specifies the search pattern for the files to match.
             Wildcards * and ? can be used in the pattern. The
             "$env:pattern" and "path:pattern" formats can also be
             specified, where "env" is an environment variable and
             the search is done in the specified paths of the "env"
             environment variable. These formats should not be used
             with /R. The search is also done by appending the
             extensions of the PATHEXT variable to the pattern.

     /?      Displays this help message.

  NOTE: The tool returns an error level of 0 if the search is
        successful, of 1 if the search is unsuccessful and
        of 2 for failures or errors.

Examples:
    WHERE /?
    WHERE myfilename1 myfile????.*
    WHERE $windir:*.* 
    WHERE /R c:\windows *.exe *.dll *.bat  
    WHERE /Q ??.??? 
    WHERE "c:\windows;c:\windows\system32:*.dll"
    WHERE /F /T *.dll 
Vinod Srivastav
źródło