Пакетен скрипт за изброяване на папки, но изключване на конкретни папки

Искам този скрипт да изброява всички папки, които съдържат „изтрити“ в името на папката, но не и ако са в папка, наречена „готово“.

Например: избройте папката, ако е в 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=Директория)

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. ОТХОД, използването на директории \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