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.

Mitglied: templier

templier (Level 1) - Jetzt verbinden

25.09.2014 um 11:03 Uhr, 2803 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:
https://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 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?? ...

Windows Server

Drucker entfernen in VB-Script

gelöst Frage von NilsvLehnWindows Server2 Kommentare

Hallo ich habe eine kleine Frage bzgl. unseres Anmeldeskriptes. Ich habe ein IT-netzwerk an einer Uni übernommen. Ich arbeite ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...