2013-03-22 28 views
5

Bu komut dosyasının, klasör adında "silindi" içeren tüm klasörleri listelemesini istiyorum, ancak "bitti" adlı bir klasörde bulunmuyor. exampel içinKlasörleri listelemek için komut dosyalarını toplu olarak alın ancak belirli klasörleri hariç tutun

: Bu C:\temp yılında ise klasörü listelemek ve onu ancak değil C:\temp\done

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

kısa hikayede ise C:\temp\random_folder_name yılında ise, tüm klasörler "bitti" ve içeriklerini adında dahil değildir.

cevap

7

bir dizin olarak 'done' olan herhangi bir ad ihmal istiyorsanız \temp bölümünü kaldırmak gerekir .

Findstr/hacim vakalarının sürü

dir/reklam yalnızca dizinleri gösterecektir dizesini (Atrribut = Dizin)

dir /s /ad "C:\temp" | findstr "\deleted" | findstr /v "\done" 
+0

Ah - ama bu sadece "bitti" 'de isimlendirilmiş dizinleri ve dosyaları hariç tutuyordu, sadece" bitti "değil – Magoo

+0

/ad dosya adlarını ortadan kaldırıyor - benim hatam. Bununla birlikte, '' '' 'bittikten sonra' 'biteviye '' bu da eşleşecektir. OTOH, '\ done \' işlevini kullanarak sadece 'done' dizinlerini 'c: \ were \ all \ done \ here' dizininden muaf tutacaktır. ANCAK '\ done' gibi biten dizinleri ortadan kaldırmaz. \ done'. Bunu yapmak için fazladan bir '| findstr/i/e/v” \ done "' eklemelisiniz. Katlama isimlerini hariç tutmak için – Magoo

+0

(yalnızca dosya isimlerini kullanın) dir/a-d. (bkz. Dir /?) – Stephan

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

faturası

  • uyacak yoksa Neredeyse orada yolun
+0

evet -/i kesinlikle iyi bir fikir! – Stephan

+1

"done" klasörü bu belirli yoldaysa işi mükemmel yapar. Nerede olursa olsun, "done" adlı herhangi bir klasörü hariç tutmak istiyorum, bu durumda C: \ Temp, öyle. Maalesef bu noktada belirsiz olsaydım. – Tomas

0

içermeyen tüm satırları döndürür:

dir /b /s /aa <path> 

Hile yapacak. Daha az ayrıntılı çıktı için/b, ardışık (alt dizinler) ve/aa için sadece arşivlenmeye hazır dosyalar için. Bu genellikle normal oluşturulan dosyalar için geçerlidir - varsayılan olarak açıktır!