1

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

Это легко: используйте dir /o-s/b >dir.lis .

Однако я хочу, чтобы файлы с именем opt *. * Всегда отображались вверху независимо от размера файла.

Не уверен, как это сделать. Я мог бы сделать это в два шага, например, dir /o-s opt*.* >dir.lis и выполнить вторую команду, чтобы вывести список остальных.

Но как мне исключить opt *. * Из второго списка?

1 ответ1

1

Как исключить opt*.* Из второго списка?

Вы можете использовать findstr для достижения этой цели:

dir /b /o-s *.* | findstr /bivr /c:"opt*.*"

Куда:

  • /b Сопоставить шаблон, если в начале строки.

  • /i Поиск без учета регистра

  • /v Печатать только строки, которые не содержат совпадения

  • /r Использовать строку как регулярное выражение

  • /c"string" Использовать строку как строку поиска букв (может включать пробелы)

Поэтому объединение следующих двух команд будет делать то, что вы хотите (сначала перечислите файлы opt*.* )

rem get opt*.* files
dir /b /o-s opt*.* > dir.lis
rem get the rest of the files excluding opt*.*
dir /b /o-s *.* | findstr /bivr /c:"opt*.*" >> dir.lis

Дальнейшее чтение

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