Tek bir dosya içeren tüm Windows klasörlerini mi arıyorsunuz (2+ dosya yerine)?


2

Garip bir parametre, ancak yalnızca tek bir dosya içeren klasörleri döndüren bir arama yapabilseydim faydalı olurdu. 2 veya daha fazla dosya içeren klasörler geri alınmaz. Bu pencerelerde yapılabilir mi? Ayrıca dosyaları kendilerine döndüren bir aramayla yaşayabilirim.

Yanıtlar:


3

Bunun yapılabilmesinin bir yolu, yerleşik Windows komut dosyası kullanarak:

Tek bir klasörde iki düz metin dosyası oluşturulması gerekir:

search.vbs içeriği ile (temel olarak kod örneklerinden toplanmış, bana göre biraz değiştirilmiş):

strDir = "i:\"
ignoreFolderCount = false

'*********************

set FSO = createobject("Scripting.FileSystemObject")

Set objDir = FSO.GetFolder(strDir)
getInfo objDir, ignoreFolderCount


'**********************
Sub getInfo(pCurrentDir, ignoreFolderCount)

   For Each aItem In pCurrentDir.SubFolders
      getInfo aItem, ignoreFolderCount
   Next

   if pCurrentDir.Files.Count <= 1 then
      if pCurrentDir.Subfolders.Count = 0 or ignoreFolderCount then 
         wscript.echo pCurrentDir
      end if
   end if
End Sub

search_launch.bat içeriği ile:

echo off
echo "Running process..."
cscript.exe search.vbs > search_results.txt
echo "Process complete"
pause

Arama komut dosyasının ilk iki satırı bir klasör yoluna (uygunluğa göre değişir) ve ALSO'nun bir alt klasöre sahip olduğu bir dosya içeren klasörleri yoksaymaya karar verir. Geri kalan kısım sadece klasörleri tekrarlı olarak arar ve dosya sayısını kontrol eder.

Search_launch toplu iş dosyası konsolu kullanarak (windows gui yerine) betiği başlatacak ve çıktıyı (klasör yolları) çağrılan bir metin dosyasına yönlendirecektir. search_results.txt. Bu boş olacak veya kriterlerinize uyan tüm klasörlerin adlarına sahip olacaktır.

Karşı kullanırken "reddedildi hatası" aldım c:\ (muhtemelen toplu iş dosyasını yönetici olarak çalıştırmanız gerekir) ve bu muhtemelen gizli dosyaları algılamamaktadır.


Şerefe horatio. Bu güzel çalıştı. Eşlenmiş bir ağ sürücüsünde çalıştı ve ayrıca 0 dosya içeren klasörler döndürdüm (bu benim durumumda yardımcı oldu, bu yüzden şikayet yok). Çok teşekkürler. Bunu başkası kullanacaksa, milyonlarca diyalog kutusu kullanmak istemiyorsanız .bat dosyasını değil .bat komutunu çalıştırdığınızdan emin olun.
CreeDorofl

GG, ve evet, sanırım toplu dosyayı çalıştırmak istediğinizi açıkça belirtmeyi unuttum, çünkü yankı ifadeleri aksi halde kalıcı bir iletişim kurar.
horatio

Batach çalıştıran benim için işe yaramadı (windows7), bir dosya "search_results.txtecho" oluşturuldu ama sadece "offecho" Çalıştırılıyor işlemi ... "cscript.exe search.vbs" içeriyor. Ama .vbs'yi çalıştırmak işe yaramadı (geçmem gereken çok fazla klasör yoktu, bu yüzden onlarca kalıcı iletişim kutusu benim için de sorun değildi).
MagTun
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.