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.