Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB Script gesucht um Videodateien auslesen zu können.

Frage Entwicklung

Mitglied: templier

templier (Level 1) - Jetzt verbinden

25.09.2014 um 11:03 Uhr, 2653 Aufrufe, 7 Kommentare, 3 Danke

Hallo zusammen,

ich habe einen Kunden der auf seinem SAN hunderte von Präsentationsvideos angesammelt hat. Diese sollen nun in ein System überführt werden, welches bestimmte Voraussetzungen an die jeweiligen Videodateien hat.

Hat jemand eine Idee wie man ein VB Script schreiben könnte, das eine Textdatei als Ausgabe erstellt in etwa so:

Filmtitel1.avi;Grösse(MB);Laufzeit(Minuten);Bitrate(Ton);Codec(Ton);Bitrate(Video);Codec(Video);Abmessungen(720x576)
Filmtitel2.avi;Grösse(MB);Laufzeit(Minuten);Bitrate(Ton);Codec(Ton);Bitrate(Video);Codec(Video);Abmessungen(480x576)
usw....

So, das man diese in einem Excelsheet importieren kann und nach den Dateien suchen kann, die neu konvertiert werden müssen? Es müssten auch Unterordner (zwei Ebenen) durchsucht werden.

Ihr kennt mich - Meine Spezialität sind Citrix- und Terminalserver. Hier muss ich passen. Auf die jeweiligen Codecs Bbild und Ton) könnte verzichtet werden. Es wäre aber schön, wenn das auch als Information dann mit in
der Textausgabe stehen würde.

Es wäre Super wenn mir jemand aus dem Script-Bereich hier helfen könnte.

Das ganze eilt natürlich nicht. Es ist nur mühsam jede einzelne Datei sichten zu müssen wenn man das Scripten könnte, aber ihr kennt das ja bestimmt selbst

Viele liebe Grüsse an alle
Ralph

Mitglied: colinardo
25.09.2014, aktualisiert um 11:07 Uhr
Hallo Ralph,
ich hatte mal eine Powershell-Funktion geschrieben das die erweiterten Dateieigenschaften auslesen kann:
http://www.administrator.de/wissen/erweiterte-dateieigenschaften-mit-po ...
Das Ergebnis dann an das CMDLet export-csv gepiped und schon hast du deine Liste

Checke mal ob es deinen Anforderungen genügt.

Grüße Uwe
Bitte warten ..
Mitglied: templier
25.09.2014 um 11:22 Uhr
Hi Uwe,

ich danke Dir für Dein schnelles Feedback - Powershell ist dort aber nicht installiert. Soll/darf auch nicht installiert werden. Deswegen suche ich das ja im VB Script

Viele liebe Grüsse
Ralph
Bitte warten ..
Mitglied: colinardo
25.09.2014, aktualisiert um 11:47 Uhr
Zitat von templier:
ich danke Dir für Dein schnelles Feedback - Powershell ist dort aber nicht installiert. Soll/darf auch nicht installiert
werden. Deswegen suche ich das ja im VB Script
da habe ich auch noch was auf Lager, muss mal kramen Die Codecinfo ist aber IMHO out of the Box mit VBS nicht möglich, da müsste man ein Zusatztool bemühen.
Bitte warten ..
Mitglied: templier
25.09.2014, aktualisiert um 11:52 Uhr
Das wäre cool Uwe und ich wäre Dir dafür sehr verbunden

Beste Grüsse aus der Schweiz
Ralph


Tante Edith: Wie gesagt, die Codec-Infos wären schön, müssen aber nicht unbedingt dabei sein.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.09.2014, aktualisiert 30.09.2014
So hier der Code, die Dateieigenschaftszuordnung wurde mit einem Windows 7 x64 gestestet, es könnte eventuell sein das auf einem anderen OS die Eigenschaften andere Nummern haben, musst du testen.
Der Pfad zu den Videos gibst du in Zeile 2 an und die Ausgabedatei in Zeile 4 und in Zeile 6 gibst du die zu verarbeitenden Dateierweiterungen an. Das Script durchsucht den Ordner rekursiv, also auch in allen Unterordnern.
01.
'Ordner mit den Dateien 
02.
Const strFolder = "C:\Videos" 
03.
' Ausgabedatei 
04.
Const strOutput = "C:\Ausgabe\liste.csv" 
05.
'Erweiterungen der Dateien die verarbeitet werden sollen 
06.
arrFileExtensions = Array("mp4","avi","mov","mpeg","mp2","mpg","mkv") 
07.
'-------------------------------------------------------- 
08.
'Objekte erzuegen 
09.
Set fso = CreateObject("Scripting.Filesystemobject") 
10.
Set objShell = CreateObject("Shell.Application") 
11.
'Ausgabefile erzeugen 
12.
Set objOutputFile = fso.OpenTextFile(strOutput,2,True,-1) 
13.
'CSV-Überschriften erzeugen 
14.
objOutputFile.WriteLine """Dateipfad"";""Größe"";""Länge"";""Bitrate(Audio)"";""Bitrate(Video)"";""Dimension"";""Videotyp""" 
15.
'Filecounter initialisieren 
16.
intFileCounter = 0 
17.
'Funktion zum durchsuchen aufrufen inkl. Dateien in Unterordnern 
18.
'------------------------------------------- 
19.
parseFolder fso.GetFolder(strFolder), True 
20.
'------------------------------------------- 
21.
'Ausgabedatei schließen 
22.
objOutputFile.Close 
23.
'Abschlussmeldung anzeigen 
24.
WScript.Echo "Vorgang wurde abgeschlossen" & vbNewLine & "Es wurden " & intFileCounter & " Video-Dateien verarbeitet!" 
25.
Set objShell = Nothing 
26.
Set fso = Nothing 
27.
 
28.
Function parseFolder(strFldr,boolRecursion) 
29.
	For each file In strFldr.Files 
30.
		'Dateierweiterung prüfen 
31.
		For i = 0 To UBound(arrFileExtensions) 
32.
			If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then 
33.
				'Pfad der Datei 
34.
				strFolderPath = file.ParentFolder 
35.
				'Namespaceobjekt erzeugen 
36.
				Set nsFolder = objShell.NameSpace(strFolderPath) 
37.
				'Fileobjekt abfragen 
38.
				Set f = nsFolder.ParseName(file.Name) 
39.
				'Ausgabevariablen mit Werten füllen 
40.
				strFilename = file.Path 
41.
				strSize = nsFolder.GetDetailsOf(f,1) 
42.
				strFilmLength = nsFolder.GetDetailsOf(f,27) 
43.
				strBitrateAudio = nsFolder.GetDetailsOf(f,28) 
44.
				strBitrateVideo = nsFolder.GetDetailsOf(f,282) 
45.
				strVideoSize = nsFolder.GetDetailsOf(f,285) & "x" & nsFolder.GetDetailsOf(f,283) 
46.
				strVideoType = nsFolder.GetDetailsOf(f,2) 
47.
				'Daten in CSV schreiben 
48.
				objOutputFile.WriteLine """" & strFilename & """;""" & strSize & """;""" & strFilmLength & """;""" & strBitrateAudio & """;""" & strBitrateVideo & """;""" & strVideoSize & """;""" & strVideoType & """" 
49.
				intFileCounter = intFileCounter + 1 
50.
				Exit For 
51.
			End If 
52.
		Next 
53.
	Next 
54.
	'Funktion rekursiv für alle Unterordner aufrufen 
55.
	If boolRecursion Then 
56.
		For Each subFolder in strFldr.SubFolders 
57.
			parseFolder subFolder, True 
58.
		Next 
59.
	End If 
60.
End Function 
61.
 
Grüße Uwe
Bitte warten ..
Mitglied: templier
25.09.2014 um 17:46 Uhr
WOW Uwe!

Genau das, was der Kunde wünschte!

Ich danke Dir und ich hoffe, das ich Dir auch mal einen "Stein in den Garten" werfen darf!

Viele liebe Grüsse
Ralph
Bitte warten ..
Mitglied: Unfassbar
10.03.2016 um 14:33 Uhr
Zunächst danke für diesen schönen Ansatz!

Ich möchte diesen Code verwenden um eine paar Eigenschaften von Bilddateien im Ordner aufzulisten, daher habe ich dein Code wie folgt eingebaut:

01.
Sub Dateieigenschaften_auflisten() 
02.
03.
' Dateieigenschaften_auflisten Makro 
04.
05.
'Ordner mit den Dateien 
06.
Const strFolder = "C:\Users\Public\Pictures\Sample Pictures" 
07.
' Ausgabedatei 
08.
Const strOutput = "C:\Users\Public\Pictures\Sample Pictures\liste.csv" 
09.
'Erweiterungen der Dateien die verarbeitet werden sollen 
10.
arrFileExtensions = Array("bmp", "jpg", "jpeg", "gif", "tif", "tiff", "png") 
11.
'-------------------------------------------------------- 
12.
'Objekte erzuegen 
13.
Set fso = CreateObject("Scripting.Filesystemobject") 
14.
Set objShell = CreateObject("Shell.Application") 
15.
'Ausgabefile erzeugen 
16.
Set objOutputFile = fso.OpenTextFile(strOutput, 2, True, -1) 
17.
'CSV-Überschriften erzeugen 
18.
objOutputFile.WriteLine """Dateipfad"";""Größe""" 
19.
'Filecounter initialisieren 
20.
intFileCounter = 0 
21.
'Funktion zum durchsuchen aufrufen inkl. Dateien in Unterordnern 
22.
'------------------------------------------- 
23.
parseFolder fso.GetFolder(strFolder), True 
24.
'------------------------------------------- 
25.
'Ausgabedatei schließen 
26.
objOutputFile.Close 
27.
'Abschlussmeldung anzeigen 
28.
WScript.Echo "Vorgang wurde abgeschlossen" & vbNewLine & "Es wurden " & intFileCounter & " Video-Dateien verarbeitet!" 
29.
Set objShell = Nothing 
30.
Set fso = Nothing 
31.
End Sub 
32.
 
33.
Function parseFolder(strFldr, boolRecursion) 
34.
    For Each file In strFldr.Files 
35.
        'Dateierweiterung prüfen 
36.
        For i = 0 To UBound(arrFileExtensions) 
37.
            If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then 
38.
                'Pfad der Datei 
39.
                strFolderPath = file.ParentFolder 
40.
                'Namespaceobjekt erzeugen 
41.
                Set nsFolder = objShell.Namespace(strFolderPath) 
42.
                'Fileobjekt abfragen 
43.
                Set f = nsFolder.ParseName(file.Name) 
44.
                'Ausgabevariablen mit Werten füllen 
45.
                strFilename = file.Path 
46.
                strSize = nsFolder.GetDetailsOf(f, 1) 
47.
                'Daten in CSV schreiben 
48.
                objOutputFile.WriteLine """" & strFilename & """;""" & strSize & """" 
49.
                intFileCounter = intFileCounter + 1 
50.
                Exit For 
51.
            End If 
52.
        Next 
53.
    Next 
54.
    'Funktion rekursiv für alle Unterordner aufrufen 
55.
    If boolRecursion Then 
56.
        For Each subFolder In strFldr.SubFolders 
57.
            parseFolder subFolder, True 
58.
        Next 
59.
    End If 
60.
End Function
Allerdings wird mir nun der Laufzeitfehler 13 "Typen unverträglich" bei Zeile 36 angezeigt. Wo liegt denn nun da das Problem?

Vielen Dank im Voraus!
Bitte warten ..
Ähnliche Inhalte
PHP
PHP Script zum Daten auslesen gesucht
Frage von majas3PHP2 Kommentare

Hallo, ich habe viele taußend HTML Seiten in verschiedenen Verzeichnissen und bin auf der Suche nach einem PHP Script ...

VB for Applications
VB Script - Besitzer auslesen und E-Mail versenden
gelöst Frage von smackeeVB for Applications2 Kommentare

Hallo Forum Ich möchte gerne mein Ordner und Dateien in einem Verzeichnis auf die Besitzer durchsuchen. Die Besitzer sollten ...

VB for Applications
VB-Script in VB-Script starten und Parameter übergeben
gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

Batch & Shell
Probleme bei der Ausführung eines VB-Scriptes
Frage von AuricGoldfingerBatch & Shell1 Kommentar

Hallo zusammen, ich habe folgendes Script geschrieben: Leider bekomme ich bei der Ausführung den Fehler Was mache ich falsch?? ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 9 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 14 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 15 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...