Windows Explorer AQS: поиск песен длительностью менее определенного количества секунд

Windows Explorer AQS: поиск песен длительностью менее определенного количества секунд

Я пытаюсь использовать расширенный синтаксис запросов Windows Explorer для поиска файлов песен в папке, которые длятся менее 10 секунд. Я попробовал следующий оператор, но он возвращает все.

kind:=music length:<=00:00:10

решение1

Извините, но это недопустимый аргумент AQS для lengthпоиска. Для этого поиска поддерживается только 5 аргументов, и они всплывают при вводеlength:

введите описание изображения здесь

Вы можете увидеть, является ли аргумент допустимым, поскольку он станет синим, в то время как ваш код поиска останется черным. Посмотрите разницу:

введите описание изображения здесь введите описание изображения здесь

решение2

Изначально я попал на эту страницу, потому что пытался выяснить, как искать видео, которые длятся менее 15 минут и имеют слишком большой размер (>100 МБ) из-за плохого кодирования.

Когда я прочитал ответ на вопрос Рика от «3 февраля 2016 года», я подумал: «Ни в коем случае, даже рассеянный склероз не может бытьчтоглупый» (хотя, должен признаться, меня это немного беспокоит!).

Удивительно, но я оказался прав, но мне все равно потребовалось некоторое время, чтобы самому разобраться с этим видом поиска по нескольким объектам недвижимости. Это (почти) так же просто, как и исходный запрос Рика (то есть,вид:=продолжительность музыки:<=00:00:10); вы просто не можете искать по длине/длительности медиа-файла, используячч:мин:сек.

Запрашиваемое свойство - "Системная.Медиа.Длительность", который по данным MS "представляет собой фактическое время воспроизведения медиафайла и измеряется в100нс единиц, а не миллисекунды" (см.,https://docs.microsoft.com/en-us/windows/desktop/properties/props-system-media-duration). Не уверен, почему они выбрали эту, казалось бы, произвольную схему, но я предполагаю, что это как-то связано со способом хранения чисел компьютерами (или, что более вероятно, с тем, как они хранили числа в прошлом).

В любом случае, чтобы провести поиск видео продолжительностью менее 15 минут, мне пришлось преобразовать 15 минут в наносекунды (= 900000000000 или 9e+11), а затем разделить результат на 100 (= 9000000000 или 9e+9).

Запрос в строке поиска Windows выглядит следующим образом:

длина:<=9000000000(угадайте что? он становится СИНИМ). Если я затем добавлю "kind:=video" и "size:>100mb" в поле поиска, я найду видео, которые мне нужно перекодировать.

Возвращаясь к первоначальному вопросу Рика, для того, чтобы найти элементы, которыемузыка И 10 секундили меньше по продолжительности воспроизведения, запрос в строке поиска Windows должен выглядеть следующим образом:

длина:<=100000000 вид:=музыка (10 секунд = 10 миллиардов нс / 100 = 100 миллионов единиц «100 нс» = 1e+8)

Этот запрос можно использовать для любого медиафайла, поддерживаемого "Системная.Медиа.Длительность" свойство. Это точно работает с видео и аудио (я не уверен, что есть еще!).

Чтобы легко преобразовать время в блоки по 100 нс, используйте строку поиска G00gle: установите нужные вам единицы времени (минуты, секунды и т. д.) в раскрывающемся списке, затем введите "# единиц/100" в левом поле (в случае Рика: установите раскрывающийся список на секунды, затем введите "10/100" в левом поле). Затем установите правый раскрывающийся список на наносекунды и вуаля, вы получаете число для использования в поисковом запросе Windows (вероятно, в экспоненциальном представлении) в правом поле.

Если вы действительно хотите сойти с ума (и сделать первый ответ на этот вопрос правильным), я думаю, вы могли бы изменить значения для "очень короткий, короткий и т. д..." в реестре. Соответствующие параметры свойств Windows описаны по ссылке выше (именно там я, наконец, обнаружилправильныйответ на вопрос Рика и мой).

RSQ@MAGS

Связанный контент