У меня есть куча пронумерованных анимаций, и каждая анимация состоит из 4 файлов (AVI, WAV, FLA и SWF).

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

Есть ли способ в Windows 7 Explorer группировать файлы по имени без расширения?

Обновить:

Я нашел способ сделать это в Xplorer2 с устаревшим (начиная с Vista) интерфейсом IColumnProvider, который был очень прост и с тех пор был заменен каким-то чудовищем системы свойств в Windows Vista и 7.

Ниже приведен снимок экрана Xplorer2 с использованием моей реализации IColumnProvider, которую Explorer прекратил поддерживать в Vista. Так много для того, чтобы быть обновлением. Xplorer2 уродлив, беспорядочен и не сортирует имена, смешанные с числом, по числовому значению, как это делает Explorer.

2 ответа2

0

Да, это легко!

  • Щелкните правой кнопкой мыши → Сортировать по → Имя
  • Группировать по → Ничего!

У меня есть хорватская Windows, поэтому я надеюсь, что я перевел правильно!

0

Я бы сказал, что Windows Explorer - это не тот инструмент, я бы использовал PowerShell, который поставляется с вашей Windows 7.

Скажем, у вас есть несколько файлов:

bar.doc
bar.exe
foo.doc
foo.exe
foo.txt
shim.doc
shim.exe
shim.txt

Для каждой группы вы хотите убедиться, что всегда есть 3 файла (или в вашем случае 4).

Запустите следующую команду в этом каталоге:

Get-ChildItem | ForEach-Object {[System.IO.Path]::GetFileNameWithoutExtension($_.FullName)} | Group-Object -noelement | sort-object -property Count -descending

Вы получите такой результат:

Count Name
----- ----
    3 foo
    3 shim
    2 bar

который говорит вам, что в группе 'bar' отсутствует один файл.

Та же команда с псевдонимами:

ls| foreach {[System.IO.Path]::GetFileNameWithoutExtension($_.FullName)} | Group -noelement | sort -property Count -descending

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

Вы также можете получить список всех групп отсутствующих файлов:

ls | foreach {[System.IO.Path]::GetFileNameWithoutExtension($_.FullName)} | Group -noelement | where{$_.Count -lt 3}

дать вам:

Count Name
----- ----
    2 bar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .