spezielle Dateien zählen - plugin gesucht

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
frogtie
Junior Member
Junior Member
Posts: 45
Joined: 2008-04-09, 13:15 UTC

spezielle Dateien zählen - plugin gesucht

Post by *frogtie »

Guten Tag zusammen,

ich brauch mal wieder Eure Hilfe.....

In mehreren Verzeichnissen habe ich alle möglichen Dateien gemischt.
Bilder, PDFs, Texte, etc.

Ich benötige ein Plugin, welches mit z.B. über die Mehrfachumbenennfunktion die Anzahl der Textdateien zählt, und ausgibt.

Alle anderen Dateien sollen dabei ignoriert werden.

Über DirSizeCalc kann ich ja Dateien in Verzeichnissen zählen, aber leider nicht angeben, welche Dateien gezählt werden sollen.

Kennt jemand so ein Plugin, oder eine andere Lösung ?

Danke im Voraus

Rüdiger
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Count extensions recursive

Post by *Stefan2 »

Powershell:

Code: Select all


PS C:\TEMP> ls -recurse | where{ $_.Extension -eq ".txt" } | group Extension -NoElement

Count Name
----- ----
  480 .txt


PS C:\TEMP> 



Code: Select all


PS C:\TEMP> ls -recurse | group Extension -NoElement

Count Name
----- ----

  480 .txt
    2 .docx
    1 .7z
   12 .xls
   73 .pdf
   17 .ini
    6 .xml
   85 .doc
    7 .html
   30 .vbs
  119 .png
    1 .lng
    3 .ahk
    3 .mdb
   12 .reg
   11 .cmd
   .... ;-)
   
PS C:\TEMP>  -- alternative :

PS C:\TEMP> ls -recurse | group Extension -NoElement | sort name -desc

PS C:\TEMP> ls -recurse | group Extension -NoElement | sort count


.
frogtie
Junior Member
Junior Member
Posts: 45
Joined: 2008-04-09, 13:15 UTC

Post by *frogtie »

ehhhm ja..... jetzt müßte man nur noch verstehen wie das anzuwenden ist... :shock:

Ich beschreibe mein Anliegen dann mal detaillierter:

- Ich wähle alle ca 800 Verzeichnisse aus und starte dann das MUT.
- In die Dateinamemaske schreibe ich "[=dirsizecalc.Dateianzahl]%[N]"

Das Plugin "DirSizeCalc" zählt jetzt alle Dateien im jeweiligen Verzeichnis und gibt dann aus: Anzahl%Verzeichnisname.

Bei Suchen und Ersetzen gebe ich jetzt ein:

suchen nach: (.*)%(.*)
Ersetzen durch: $1\\$2

Dadurch verschiebe ich alle Verzeichnisse mit z.B. 5 Dateien in ein Verzeichnis namens "5", ein Verzeichnis mit 12 Dateien in ein Verzeichnis namens "12", usw....

Soweit ist das genau die Funktion die ich brauche.
Allerdings dürften nicht alle Dateien gezählt werden, sondern nur die Anzahl der enthaltenen *.txt-Dateien.

Puh..... Beschreiben ist schwer.... :oops:
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Eventuell:

- Ich wähle alle ca 800 Verzeichnisse aus
- suche nach *.TXT >> [Anwenden] >> Alle auswählen
- und starte dann das MUT.

???
frogtie
Junior Member
Junior Member
Posts: 45
Joined: 2008-04-09, 13:15 UTC

Post by *frogtie »

nee, geht leider nicht.

Es sind in ALLEN Verzeichnissen u.a. auch *.txt - Dateien enthalten.

Ich muß nur danach sortieren, wie viele TXT-Dateien enthalten sind.
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1014
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Dies kann man mit dem Script Content Plugin bewerkstelligen.

Ein neues "countfiles.vbs" oä anlegen:

Code: Select all

content = ""

fileExt = ".txt"

Dim fso, fldr, file, fc, c
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FolderExists(filename) Then
   Set fldr = fso.GetFolder(filename)
   Set fcol = fldr.Files
   For Each file in fcol
      If lcase(right(file.name, 4)) = lcase(fileExt) Then
         c = c + 1
      End If
   Next
   content = c
Else
   content = "No Dir"
End If

set fldr = nothing
set fso = nothing
und in der "script.ini" aktivieren:

Code: Select all

[Script]
Section=CountFiles

[CountFiles]
Script=countfiles.vbs
ParseDirs=1
Diese Version ist nicht rekursiv, dh sie schaut nicht in Unterverzeichnisse.

Hier die rekursive Variante:

Code: Select all

'Debug Stuff:
'filename="c:\Temp\_TestFiles2\F1"

content = ""

fileExt = ".txt"

Dim fso, fldr, subfolder, totalCount
Set fso = CreateObject("Scripting.FileSystemObject")

totalCount = 0

If fso.FolderExists(filename) Then
	CountFilesInSubFolders(filename)
	content = totalCount
Else
	content = "No Dir"
End If

set fldr = nothing
set fso = nothing

'Debug Stuff:
'MsgBox "TotalCount: " & vbCR & content

Function CountFilesInSubFolders(prmFolder)
	Set fldr = fso.GetFolder(prmFolder)
	'Count Files
	Set fcol = fldr.Files
	For Each file in fcol
		If lcase(right(file.name, 4)) = lcase(fileExt) Then
			totalCount = totalCount + 1
		End If
	Next
	
	'RECURSE	
	Set fldrcol = fldr.SubFolders
	For Each subfolder in fldrcol
		CountFilesInSubFolders(subfolder.Path)
	Next
End Function
Dies wurde kurzfristig hingekrakelt, bitte ausführlich testen vor Anwendung am lebenden Objekt!
User avatar
van Dusen
Power Member
Power Member
Posts: 684
Joined: 2004-09-16, 19:30 UTC
Location: Sinzig (Rhein), Germany

Post by *van Dusen »

Hallo frogtie,

dafür kämen das Plugin FileMask oder das Script CountExt.vbs für das Script Content Plugin in Frage.

Details siehe hier:
http://www.ghisler.ch/board/viewtopic.php?p=266569#266569

und hier:
http://www.ghisler.ch/board/viewtopic.php?p=271541#271541
Post Reply