CMD Использование DIR для заказа каталогов по имени

Я использую следующую команду для вывода списка файлов, в том числе в подкаталогах, упорядоченных по имени.

dir /b/s/on

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

Является dir в состоянии также сортировать каталоги?

Вот скриншот сегмента вывода (обфусцированный):

введите описание здесь

1 ответ

Решение

dir это обход дерева по каталогу, но только сортировка записей в конечных каталогах. Это проблема, потому что это файловая система FAT. В файловой системе FAT записи в любом каталоге не сортируются, что приводит к несортировке обхода дерева. Каталоги NTFS, напротив, всегда сортируются.

У вас есть пара решений. Проще всего было бы передать вывод через sort:

dir /b/s | sort

(Если вы используете sort чтобы сделать заказ, нет необходимости в /on возможность dir.)

Другой вариант - использовать Unix-стиль. lsчто, безусловно, получит это право. Примеры будут ls либо в Cygwin, либо в моей собственной оболочке Hamilton C.

Другие вопросы по тегам