Как легко найти файлы без расширения с помощью Windows

1545
computationalprince

У меня есть несколько файлов на жестком диске, которые не имеют никаких расширений. Найти их вручную очень сложно, мне действительно не нравится тот факт, что мне придется быстрее заменять мышь из-за небольшого, но очень заметного ущерба, нанесенного оборудованию при попытке найти эти файлы постоянно щелчок и прокрутка, так как они представляют собой несколько сотен файлов из тысяч в одной папке.

Кто-нибудь здесь знает о команде cmdили PowerShell, или какой-то синтаксис запроса расширенного поиска в проводнике Windows, чтобы упростить эту задачу?

0
В чем вопрос? Toto 6 лет назад 0
ты шутишь с этим текстом Lorem Ipsum? SimonS 6 лет назад 0
Explorer: `kind: = -folder extension: =" "`. PetSerAl 6 лет назад 1
@PetSerAl, к сожалению, не работает (также пытался настроить его, поменять местами, но ничего). computationalprince 6 лет назад 0
@computationalprince Кажется, он работает только в индексированных местах. Это должно работать и в неиндексированных местах: `kind: = -folder type: = - [] extension: = []`. PetSerAl 6 лет назад 1
Чтобы продвинуться еще дальше (просто чуть-чуть), вы можете использовать `kind: = -folder type: = - [] extension: = [] папка:" C: \ folder \ path "` по существу помещая `folder:" C: \ folder \ path "` в микс с ** расширенным синтаксисом запросов проводника файлов **, чтобы не выполнять рекурсивный поиск и только для конкретной папки, заключенной в двойные кавычки. Очень приятно @PetSerAl !!! Pimp Juice IT 6 лет назад 0
@PetSerAl Посмотрите мой обновленный ответ с этим полезным советом, который вы мне предоставили. Я считаю, что он слишком хорош, чтобы быть просто комментарием. Pimp Juice IT 6 лет назад 0
Я не уверен, почему за это проголосовали, мне кажется, это идеальный вопрос. +1 FreeSoftwareServers 6 лет назад 0
@FreeSoftwareServers Вероятно, было отвергнуто во время начальной ... войны за редактирование / редактирование. Этот вопрос не всегда был разборчивым. Michael Frank 6 лет назад 0
Справедливо, но люди должны отменить свои отрицательные голоса, когда вопрос исправлен / отредактирован. Я хотел бы знать, как он получил кучу файлов без расширений ... Но это на самом деле не имеет значения FreeSoftwareServers 6 лет назад 0
@PetSerAl: я считаю, что `kind: -folder extension: []` и `type: -folder extension: []` кажутся достаточно хорошими (в Windows 7). Почему вы ставите `=` и пробел между именем свойства (ключевым словом) и ограничением (значением)? Scott 6 лет назад 0
@ Scott Space - это вопрос стиля, я просто думаю, что так оно и выглядит. `=` в этом случае, вероятно, не является обязательным, но я хотел бы быть явным: некоторые свойства по умолчанию используют частичное совпадение, и это то же самое, что и автозаполнение. А без `type: = - []` он не находит элементы файловой системы, такие как элементы истории интернета, в зависимости от вашего местоположения поиска. PetSerAl 6 лет назад 0

4 ответа на вопрос

5
Pimp Juice IT

Поиск файлов без расширений файлов с Windows

Проводник Windows - расширенный синтаксис запросов

Согласно PetSerAl вот некоторые из методов синтаксиса расширенного запроса File Explorer, с которых нужно начинать, но подробнее читайте ниже об эквивалентных методах командной строки и пакетного сценария для этой задачи.

Рекурсивный поиск

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

Нерекурсивна

Просто выберите « Текущая папка » через вкладку « Поиск » в графическом интерфейсе

enter image description here

или же

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

Вы можете использовать цикл for / f, повторяя вывод команды dir с/B и /A-Dпараметрами, а затем использовать некоторые условные, если логика только выходные файлы без каких - либо расширений с помощью подстановки для итеративных файлов в указанной директории.

Командная строка

Примечание. Предполагается, что каталог, в котором вы находитесь в командной строке, является каталогом, в котором вам нужно искать файлы без расширений.

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

Пакетный скрипт

Примечание. Это пакетный сценарий, в котором в качестве SET Src=значения указывается каталог, в котором нужно искать файлы без расширений.

@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 

Дополнительные ресурсы

  • Для / F
  • FOR /?

    Кроме того, была улучшена замена ссылок на переменные FOR. Теперь вы можете использовать следующий необязательный синтаксис:

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

  • Если
С точки зрения CMD, каждое имя файла, содержащее точку, имеет расширение, даже если оно не одно. Так что, возможно, стоит проверить расширение на валидность по длине или содержанию. (ассоциация перечислит известные расширения) LotPings 6 лет назад 0
Переключаться между рекурсивным / нерекурсивным поиском довольно просто через [GUI] (https://i.stack.imgur.com/S57D1.png). PetSerAl 6 лет назад 1
(1) Вопрос не указывает версию Windows. Windows 7 и более ранние версии не имеют проводника; В проводнике Windows (как это явно указано в OP) нет ленты или чего-либо похожего на вкладку «Поиск», которую вы показываете. (2) К вашему сведению, я могу подтвердить, что тип `kind: = -folder: = - [] расширение: = []` Расширенный синтаксис запроса работает в Windows 7. Но так же работает и тип `kind: -folder: - [] : [] `- вам не нужны знаки` = `(или пробелы после них). На самом деле, `kind: -folder extension: []` и `type: -folder extension: []` кажутся достаточно хорошими. … (Продолжение) Scott 6 лет назад 1
(Продолжение)… (3) Когда `` `dir / B * / AD``` дает результат, отличный от` dir / B / AD` (т. Е. Когда `dir *` дает результат, отличный от ` dir`)? Scott 6 лет назад 1
1
Bacon Bits

Для решения PowerShell:

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

Или же:

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

Обратите внимание, что для этого -Fileпараметра требуется PowerShell v3 +.

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

Это использует максимальное сокращение. Но на самом деле это тот же код, что и @BaconBits. Я предпочитаю стенографию. Труднее читать новичку, но выразительнее и лаконичнее

Причина, по которой у нас минимальная длина ответа, заключается в том, что мы ожидаем, что каждое сообщение будет иметь * некоторый * уровень объяснения и / или комментария. Scott 6 лет назад 2
Сожалею. исправлено. Спасибо Justin 6 лет назад 0
0
Scott

В командной строке просто используйте *.:

C: \ directory \ name > dir  24.08.2008 03:33. 24.08.2008 03:33 .. 24.08.2008 03:33 16 a 24.08.2008 03:33 18 до н.э. 24.08.2008 03:33 20 def 3 файл (ов) 54 байтов  C: \ directory \ name > dir *.  24.08.2008 03:33. 24.08.2008 03:33 .. 24.08.2008 03:33 16 a 1 файл (ов) 16 байт  C: \ directory \ name >

Помните, что командная строка Windows не является Unix. В именах файлов Unix точка ( .) - это обычный символ (за исключением того факта, что имя файла, начинающееся с точки, скрыто). В Unix *e*означает все имена файлов, которые содержат e, и *.*означает все имена файлов, которые (явно) содержат ..

Правила для командной строки более хитры.  *означает все имена файлов (даже с расширением). А *.*также означает все имена файлов (даже те, которые не содержат .). Но *.означает все имена файлов, которые не имеют расширения.

Похожие вопросы