Пакетный скрипт для отображения папок, но исключения определенных папок

Я хочу, чтобы этот сценарий отображал все папки, содержащие «удалено» в имени папки, но не в папке с названием «Готово».

Например: укажите папку, если она находится в C:\temp и если она находится в C:\temp\random_folder_name, но не укажите, если она находится в C:\temp\done.

dir /s "C:\temp" | findstr "\deleted"

Короче говоря, исключите все папки с названием «Готово» и их содержимое.


person Tomas    schedule 22.03.2013    source источник


Ответы (3)


Вы почти там.

Findstr /v возвращает все строки, не содержащие строку

dir /ad будет показывать только каталоги (Atrribut=Directory)

dir /s /ad "C:\temp" | findstr "\deleted" | findstr /v "\done"
person Stephan    schedule 22.03.2013
comment
Ах, но это также исключит каталоги и файлы с именем done*, а не только 'done' - person Magoo; 22.03.2013
comment
/ad удаляет имена файлов - моя ошибка. Тем не менее, без ` after \done` это тоже будет соответствовать \doneeverything. OTOH, использование каталогов \done` will exempt only done`, например c:\were\all\done\here, НО не устранит каталоги, заканчивающиеся на \done, например c:\were\not\all\done. Для этого вам нужно добавить дополнительный |findstr /i /e /v "\done". - person Magoo; 22.03.2013
comment
чтобы исключить имена папок (используйте только имена файлов) dir /a-d. (см. директор /?) - person Stephan; 22.03.2013

dir /s "C:\temp" | findstr "\deleted"|findstr /i /v "\temp\done\"

должно соответствовать счету

  • или удалите часть \temp, если вы хотите опустить любое имя, которое «сделано» как каталог на пути
person Magoo    schedule 22.03.2013
comment
он отлично справляется со своей задачей, если готовая папка находится по этому конкретному пути. Я хочу, чтобы он исключал любую папку с именем done, где бы она ни находилась, в данном случае это C:\Temp. Извините, если я был неясен в этом вопросе. - person Tomas; 22.03.2013

во многих случаях:

dir /b /s /aa <path>

Будет делать свое дело. /b для менее подробного вывода, /s для рекурсивного (подкаталоги) и /aa только для файлов, готовых к архивированию. Обычно это происходит с обычными созданными файлами — по умолчанию включено!

person SuperTurbo    schedule 02.09.2017