Datenträger nach Filmen, MP3s, Bildern oder docx durchsuchen - Auflistung inkl. Filmlänge, Abmessungen, Interpret, Kamermodell, Autor etc.. in eine .csv speichern
02.04.2010
03:13:35 Uhr5412 Aufrufe
4 Antworten
03:13:35 Uhr
4 Antworten
Noch nicht bewertet
Um etwas Ordnung in die "Sicherungskopien" zu bringen, könnte folgender Codeschnipsel behiflich sein...
Aloha!
Nachdem sich doch mittlerweile etwas Chaos in meiner Filmsammlung breit gemacht hat und ich keine passende UND veränderbare Software gefunden habe, ist folgendes Tool entstanden...
Die Idee:
Mittels HTA als GUI und VBS ein Tool basteln, das einen beliebigen Datenträger nach einem bestimmten Datentyp (auf Grundlage der Standardanwendung, mit der der Dateityp geöffnet wird) durchsucht, einige erweiterte Dateieigenschaften sammelt und diese dann in eine csv schreiben
Die Umsetzung:
[edit: das Skript könnte auf einigen Vista oder 7 nicht laufen. Gegebenfalls wäre also die mstha.exe in Windows32 gegen eine ältere Version (am besten aus XP) tauschen...]
folgenden Code als myMovies.hta speichern (an beliebiger Stelle) - Start durch Doppelklick
Kurze Erklärung zur Verwendung bzw. Anpassung:
Durch klick auf den Button Datei anlegen wird das Laufwerk (bzw. der jeweilige Unterordner, den ihr gewählt habt) durchsucht und im Hintergrund die .csv-Datei angelegt;
Das Tool schließt den Such/Schreibvorgang mit der Meldung "Datei erfolgreich angelegt" ab. Dies kann - je nach Größe des Datenträgers bzw. Saft eures Systems mehrere Minuten in Anspruch nehmen...
Die csv-Datei wird in das Verzeichnis gespeichert, in dem die myMovies.hta liegt. Der Dateiname richtet sich nach folgendem Schema:
LW_Unterverzeichnis_dateityp1;dateityp2.csv
Das Tool lässt sich für jeden beliebigen Dateityp verwenden, in dem man im Windows Explorer den Mauszeiger über eine Datei des gewünschten Dateityps positioniert. Im Popup findet sich in der ersten Zeile der Eintrag TYP.
(Tipp: es genügt, im Eingabefeld Dateityp einige Zeichen des Typs einzutragen!)
Weiters besteht die Möglichkeit, mehrere Dateitypen in einer .csv zu erfassen, in dem man diese durch Semikolon (;) trennt
(Tipp: ohne Leerzeichen)
Zum Zwecke der besseren Übersichtlichkeit besteht die Möglichkeit, lange Ordnernamen bzw. Dateinamen auf eine selbst wählbare Zeichenanzahl abzukürzen (dies wird durch ... in der csv dargestellt)
Außerdem kann die Auflistung erweitert werden, in dem alle Ordner angezeigt werden (dh, auch jene, in denen der gesuchte Datentyp nicht vorhanden ist)
Die grafische Gestaltung des Tools lässt etwas zu wünschen übrig, aber meine ästhetischen Anforderungen sind nur in Bezug auf das andere Geschlecht erhöht...
(Tipp: die GUI ist rein in HTML verfasst und lässt sich beliebig verbessern... - verschlechtern ist wohl kaum mehr möglich
Falls andere als die von mir gewählten erweiterten Eigenschaften in die csv übertragen werden sollten, dann könnte folgende Liste behilflich sein.
Tipp, falls ihr mit VBS nicht so ganz per Du seid:
die Zahlen entsprechen dem Arrayindex in der Funktion Detail entsprechen...: (folgende Änderungen beziehen sich auf Zeile 97 im Code)
Beispiel 1: ihr ersetzt die Abmessung gegen das Kamermodell [24]
Beispiel 2: ihr erweitert den Code - hier wird der Interpret und den Titel des Albums ausgegeben - wenn es um mp3 gehen sollte...): [16] [17]
(ich verwende nur die Indexwerte 0,21 u 26)
Evtl. braucht ja jemand von Euch einmal dieses Tool oder kann darauf aufbauend etwas für seine mp3-Sammlung basteln (oder .docx oder whatever...).
(Außerdem kann ich es durch diese Anleitung selbst nicht mehr verlieren.... wäre leider nicht das erste Tool, das ich wiederholt mache, da ich es nicht mehr finde
Bei Fragen helfe ich gerne weiter...
lg
Edi
Nachdem sich doch mittlerweile etwas Chaos in meiner Filmsammlung breit gemacht hat und ich keine passende UND veränderbare Software gefunden habe, ist folgendes Tool entstanden...
Die Idee:
Mittels HTA als GUI und VBS ein Tool basteln, das einen beliebigen Datenträger nach einem bestimmten Datentyp (auf Grundlage der Standardanwendung, mit der der Dateityp geöffnet wird) durchsucht, einige erweiterte Dateieigenschaften sammelt und diese dann in eine csv schreiben
Die Umsetzung:
[edit: das Skript könnte auf einigen Vista oder 7 nicht laufen. Gegebenfalls wäre also die mstha.exe in Windows32 gegen eine ältere Version (am besten aus XP) tauschen...]
folgenden Code als myMovies.hta speichern (an beliebiger Stelle) - Start durch Doppelklick
01.
<head> 02.
<meta name="author" content="urobe73_administrator.de"> 03.
<meta name="generator" content="Ulli Meybohms HTML EDITOR"> 04.
<title>Edis Dateiliste</title> 05.
<HTA:APPLICATION 06.
SCROLL="yes" 07.
SINGLEINSTANCE="yes" 08.
WINDOWSTATE="normal" 09.
> 10.
</head> 11.
<script language="VBScript"> 12.
' Version 02_04_2010 - 12:00 13.
14.
Set objFSO = CreateObject("Scripting.FileSystemObject") 15.
kopfzeile = 0 16.
function meineVids(pfad,dateiname) 17.
18.
if kopfzeile = 0 then 19.
set logbuch1 =objFSO.opentextfile(dateiname, 2, true,0) 20.
logbuch1.write "Ordnername;Filmtitel;Filmlänge;Abmessungen" 21.
logbuch1.close 22.
kopfzeile = 1 23.
end if 24.
25.
If radiobutton(0).Checked Then 26.
showall = "ja" 27.
End If 28.
If radiobutton(1).Checked Then 29.
showall = "nein" 30.
End If 31.
32.
Set objFolder = objFSO.GetFolder(pfad) 33.
Set colSubfolders = objFolder.Subfolders 34.
35.
For Each objSubfolder in colSubfolders 36.
on Error resume next 37.
ordnerzeichen = ordner_zeichen.value 38.
vollername = objFSO.GetAbsolutePathName(objSubfolder) 39.
40.
if showAll = "ja" then 41.
ausgabe2 = left(vollername,ordnerzeichen) & punktaln(vollername,ordnerzeichen) & vbcrlf 42.
end if 43.
ausgabe1 = ausgabe2 & detail(vollername, showall) 44.
45.
set logbuch1 =objFSO.opentextfile(dateiname, 8, true,0) ' 8 zum anfügen 46.
logbuch1.write ausgabe1 47.
logbuch1.close 48.
dateinameneu = dateiname 49.
call meineVids(vollername,dateinameneu) 50.
Next 51.
52.
end function 53.
54.
function punktaln(ordnername, anzeigezeichen) 55.
anzeigezeichen = anzeigezeichen+1 'damit er checkt, dass anzeigezeichen eine zahl ist... 56.
if len(ordnername) >= anzeigezeichen then 57.
anzeige = "... " 58.
end if 59.
punktaln = anzeige 60.
end function 61.
62.
function Detail(ordnername, lang) 63.
dateitypen = split(Dateityp.value,";") 64.
65.
showAll = lang 66.
If urlbutton(0).Checked Then 67.
link = "ein" 68.
End If 69.
If urlbutton(1).Checked Then 70.
link = "aus" 71.
End If 72.
durchlauf = 1 73.
74.
Dim arrHeaders(34) 75.
Set objShell = CreateObject("Shell.Application") 76.
Set objFolder = objShell.Namespace(ordnername) 77.
For i = 0 to 33 78.
arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i) 79.
Next 80.
For Each strFileName in objFolder.Items 81.
ordnerzeichen = ordner_zeichen.value 82.
dateizeichen = datei_zeichen.value 83.
84.
for i = 0 to UBound(dateitypen) 85.
if instr(1, objFolder.GetDetailsOf(strFileName, 2), dateitypen(i), 1) >= 1 then 86.
nemmas = 1 87.
end if 88.
next 89.
90.
if nemmas = 1 then 91.
if durchlauf = 1 AND showAll <> "ja" then 92.
feedback = feedback & vbcrlf & left(ordnername,ordnerzeichen) & punktaln(ordnername,ordnerzeichen) & vbcrlf 93.
feedback_DVD = feedback 94.
durchlauf = 2 95.
end if 96.
feedback = feedback & " ;" & left(objFolder.GetDetailsOf(strFileName, 0),dateizeichen) _ 97.
& punktaln(objFolder.GetDetailsOf(strFileName, 0),dateizeichen) & "; " & objFolder.GetDetailsOf(strFileName, 21) _ 98.
& ";(" & objFolder.GetDetailsOf(strFileName, 26) & ");" 99.
100.
if link = "ein" then 101.
feedback2 = Chr(34) & "=hyperlink(" & Chr(34) & Chr(34)& ordnername & "\" & objFolder.GetDetailsOf(strFileName, 0) _ 102.
& Chr(34) & Chr(34) & ";" & Chr(34) & Chr(34) & "klick " & Chr(34) & Chr(34)& ")" & Chr(34) 103.
end if 104.
105.
feedback = feedback & feedback2 & vbcrlf 106.
if instr(1, objFolder.GetDetailsOf(strFileName, 0),"vob", 1)>=1 then feedback = feedback_DVD & "ist eine DVD" & vbcrlf 107.
end if 108.
nemmas = 0 109.
Next 110.
Detail = feedback 111.
end function 112.
113.
Sub Aufgabe1 114.
115.
woissndes = pfad.value 116.
dateiname = replace(woissndes,"\","_") 117.
dateiname = replace(dateiname,":","_") 118.
dateiname = dateiname & "_" & dateityp.value & ".csv" 119.
120.
call meineVids(woissndes,dateiname) 121.
122.
DataArea.InnerHTML = "<a href='" & dateiname & "'>Datei</a> erfolgreich angelegt" 123.
124.
End Sub 125.
126.
</script> 127.
128.
129.
<body bgcolor=#FAF8AF> 130.
<font face=verdana> 131.
Pfad: <input type="Text" name="pfad" value="G:\" size="" maxlength=""><br><br> 132.
133.
134.
Was erscheint als Typ, wenn man den Mauszeiger über eine gesuchte Datei bewegt: <input type="Text" name="Dateityp" value="vlc;windows media" size="25" maxlength="20"> <br> 135.
<font size = 1> 136.
(es können auch mehrere Typen, durch <b>;</b> getrennt, angegeben werden!)<br> 137.
Beispiele: Irfan;Windows Media;excel;word;winamp ... oder mit der Dateierweiterung (einzeln oder kombiniert): doc;zip;rar;xlsx;mp3;avi</font><br><br> 138.
139.
140.
Die Anzeige der Ordner wird auf <input type="Text" name="ordner_zeichen" value="120" size="" maxlength=""> eingeschränkt!<br><br> 141.
142.
Die Anzeige der Dateinamen wird auf <input type="Text" name="datei_zeichen" value="100" size="" maxlength=""> eingeschränkt!<br><br> 143.
144.
Sollen auch Ordner angezeigt werden, die den gewünschten Dateityp NICHT enthalten? 145.
Ja <input type="radio" name="radiobutton" value="0"> Nein <input type="radio" name="radiobutton" value="1" checked><br><br> 146.
Sollen in der .csv-Datei Links zu den Dateien erscheinen? 147.
Ja <input type="radio" name="urlbutton" value="0"> Nein <input type="radio" name="urlbutton" value="1" checked><br><br> 148.
<br> 149.
150.
151.
<input type="button" value="Datei anlegen" name="run_button" onClick="Aufgabe1"><br> 152.
<font size = 1>(Die Verarbeitung kann mehrere Minuten dauern... Bitte um etwas Geduld)</font> 153.
154.
<br><br><br> 155.
<b> 156.
<div id="dataarea"></div> 157.
</b> 158.
</font> 159.
</body> 160.
161.
Kurze Erklärung zur Verwendung bzw. Anpassung:
Durch klick auf den Button Datei anlegen wird das Laufwerk (bzw. der jeweilige Unterordner, den ihr gewählt habt) durchsucht und im Hintergrund die .csv-Datei angelegt;
Das Tool schließt den Such/Schreibvorgang mit der Meldung "Datei erfolgreich angelegt" ab. Dies kann - je nach Größe des Datenträgers bzw. Saft eures Systems mehrere Minuten in Anspruch nehmen...
Die csv-Datei wird in das Verzeichnis gespeichert, in dem die myMovies.hta liegt. Der Dateiname richtet sich nach folgendem Schema:
LW_Unterverzeichnis_dateityp1;dateityp2.csv
Das Tool lässt sich für jeden beliebigen Dateityp verwenden, in dem man im Windows Explorer den Mauszeiger über eine Datei des gewünschten Dateityps positioniert. Im Popup findet sich in der ersten Zeile der Eintrag TYP.
(Tipp: es genügt, im Eingabefeld Dateityp einige Zeichen des Typs einzutragen!)
Weiters besteht die Möglichkeit, mehrere Dateitypen in einer .csv zu erfassen, in dem man diese durch Semikolon (;) trennt
(Tipp: ohne Leerzeichen)
Zum Zwecke der besseren Übersichtlichkeit besteht die Möglichkeit, lange Ordnernamen bzw. Dateinamen auf eine selbst wählbare Zeichenanzahl abzukürzen (dies wird durch ... in der csv dargestellt)
Außerdem kann die Auflistung erweitert werden, in dem alle Ordner angezeigt werden (dh, auch jene, in denen der gesuchte Datentyp nicht vorhanden ist)
Die grafische Gestaltung des Tools lässt etwas zu wünschen übrig, aber meine ästhetischen Anforderungen sind nur in Bezug auf das andere Geschlecht erhöht...
(Tipp: die GUI ist rein in HTML verfasst und lässt sich beliebig verbessern... - verschlechtern ist wohl kaum mehr möglich
Falls andere als die von mir gewählten erweiterten Eigenschaften in die csv übertragen werden sollten, dann könnte folgende Liste behilflich sein.
Tipp, falls ihr mit VBS nicht so ganz per Du seid:
die Zahlen entsprechen dem Arrayindex in der Funktion Detail entsprechen...: (folgende Änderungen beziehen sich auf Zeile 97 im Code)
Beispiel 1: ihr ersetzt die Abmessung gegen das Kamermodell [24]
Beispiel 2: ihr erweitert den Code - hier wird der Interpret und den Titel des Albums ausgegeben - wenn es um mp3 gehen sollte...): [16] [17]
01.
Beispiel1: 02.
& ";(" & objFolder.GetDetailsOf(strFileName, 24) & ");" 03.
04.
Beispiel2: 05.
& ";(" & objFolder.GetDetailsOf(strFileName, 16) & ")" & ";" & objFolder.GetDetailsOf(strFileName, 17) & ";"(ich verwende nur die Indexwerte 0,21 u 26)
0 Name: meinLieblingsfilm.avi
1 Größe: 91.000 KB
2 Typ: VLC media file (.avi)
3 Geändert am: 12.09.2009 19:39
4 Erstellt am: 12.09.2009 19:37
5 Letzter Zugriff am: 01.04.2010 21:18
6 Attribute: A
7 Status: Online
8 Besitzer: EDI\urobe
9 Autor:
10 Titel:
11 Thema:
12 Kategorie:
13 Seiten:
14 Kommentare:
15 Copyright:
16 Interpret:
17 Albumtitel:
18 Jahr:
19 Titelnummer:
20 Genre:
21 Dauer: 00:09:36
22 Bitrate:
23 Geschützt:
24 Kameramodell:
25 Bild aufgenommen am:
26 Abmessungen: 640 x 480
27 : 640 Pixel
28 : 480 Pixel
29 Folgenname:
30 Sendungsbeschreibung:
31 :
32 Abtastgröße:
33 Abtastrate:
1 Größe: 91.000 KB
2 Typ: VLC media file (.avi)
3 Geändert am: 12.09.2009 19:39
4 Erstellt am: 12.09.2009 19:37
5 Letzter Zugriff am: 01.04.2010 21:18
6 Attribute: A
7 Status: Online
8 Besitzer: EDI\urobe
9 Autor:
10 Titel:
11 Thema:
12 Kategorie:
13 Seiten:
14 Kommentare:
15 Copyright:
16 Interpret:
17 Albumtitel:
18 Jahr:
19 Titelnummer:
20 Genre:
21 Dauer: 00:09:36
22 Bitrate:
23 Geschützt:
24 Kameramodell:
25 Bild aufgenommen am:
26 Abmessungen: 640 x 480
27 : 640 Pixel
28 : 480 Pixel
29 Folgenname:
30 Sendungsbeschreibung:
31 :
32 Abtastgröße:
33 Abtastrate:
Evtl. braucht ja jemand von Euch einmal dieses Tool oder kann darauf aufbauend etwas für seine mp3-Sammlung basteln (oder .docx oder whatever...).
(Außerdem kann ich es durch diese Anleitung selbst nicht mehr verlieren.... wäre leider nicht das erste Tool, das ich wiederholt mache, da ich es nicht mehr finde
Bei Fragen helfe ich gerne weiter...
lg
Edi
bastla schreibt am 02.04.2010 um 17:36:22 Uhr
Edi.Pfisterer schreibt am 02.04.2010 um 20:27:00 Uhr
Hallo Bastla!
Danke für den Hinweis!!!
Da ich hier noch auf XP unterwegs bin, funktioniert mein Code - ohne entsprechende Anpassungen der Indizes - auch nur dafür...
Du bist natürlich wieder herzlich eingeladen, das Ding zu verändern bzw. -bessern!!!!
btw: mir ist aufgefallen, dass das Tool manche Ordner auslässt, weil ihm irgendetwas an der Formatierung der Dateien nicht passt...
(Konnte dies anhand einer Datei, die ein russischer Kollege in seiner Heimatschrift benannte, feststellen...
Falls Du dafür eine Verbesserung hast (dh, es wird nur die Datei, nicht aber der ganze Folder ausgelassen), würde ich das schön finden.
Am schärfsten wäre natürlich eine Prüfung vorweg, welches OS installiert ist und anschliessend daran ein paar checkboxen, welche Infos in die csv geschrieben werden sollen....
Wünsche Dir frohes Osternestsuchen
lg
Edi
Danke für den Hinweis!!!
Da ich hier noch auf XP unterwegs bin, funktioniert mein Code - ohne entsprechende Anpassungen der Indizes - auch nur dafür...
Du bist natürlich wieder herzlich eingeladen, das Ding zu verändern bzw. -bessern!!!!
btw: mir ist aufgefallen, dass das Tool manche Ordner auslässt, weil ihm irgendetwas an der Formatierung der Dateien nicht passt...
(Konnte dies anhand einer Datei, die ein russischer Kollege in seiner Heimatschrift benannte, feststellen...
Falls Du dafür eine Verbesserung hast (dh, es wird nur die Datei, nicht aber der ganze Folder ausgelassen), würde ich das schön finden.
Am schärfsten wäre natürlich eine Prüfung vorweg, welches OS installiert ist und anschliessend daran ein paar checkboxen, welche Infos in die csv geschrieben werden sollen....
Wünsche Dir frohes Osternestsuchen
lg
Edi
Edi.Pfisterer schreibt am 09.04.2010 um 09:47:54 Uhr
Hallo Midivirus!
Wie verlief Dein Test? Verbesserungsvorschläge? Anmerkungen?
lg
Wie verlief Dein Test? Verbesserungsvorschläge? Anmerkungen?
lg















