Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Nochmal Filmliste leider

Frage Entwicklung Batch & Shell

Mitglied: Scoorpyn

Scoorpyn (Level 1) - Jetzt verbinden

09.12.2013, aktualisiert 10:50 Uhr, 1283 Aufrufe, 2 Kommentare

Hallo ich habe leider jetzt gerade das Problem bei meiner Filmliste, dass ich die Bildhöhe und Bildbreite nicht anzeigen lassen kann, weil das Format der Filme Apple Quicktime Format ist und diese nicht in den Eigenschaften Details angezeigt werden. Die Filmliste soll den Namen des Filmes, den relativen Pfad (falls vorhanden) sowie die Bildhöhe und Breite des Films in eine .TXT Datei eintragen.
Vielen Dank an colinardo das er mir so gut geholfen hat :D

Nun habe ich diese Details mit dem Programm MediaInfo ausgelesen, mir immer von einem Film anzeigen lassen, wie kann ich den Code:
01.
 function Add-ExtendedFileProperties{ 
02.
  <# 
03.
      .SYNOPSIS 
04.
         Fügt erweiterte Eigenschaften von Dateien an das Objekt in der Pipline hinzu 
05.
      .DESCRIPTION 
06.
         Extrahiert erweiterte Eigenschaften von Dateien wie z.B. Exif-Daten, Musik- bzw. Filmdetails 
07.
      .EXAMPLE  
08.
             Get-ChildItem "C:\Temp" | Add-ExtendedFileProperties -PropertyExtended 
09.
 "Bildhöhe","Bildbreite","Bitrate" | ft Name,Bildhöhe,Bildbreite,Bitrate 
10.
             Fügt alle nur die Eigenschaften "Bildhöhe","Bildbreite","Bitrate" als 
11.
 zusätzliche Spalten dem Objekt in der Pipline hinzu 
12.
      .EXAMPLE 
13.
             Get-ChildItem "C:\Temp" | Add-ExtendedFileProperties | fl * 
14.
             Fügt alle verfügbaren erweiterten Eigenschaften dem Objekt in der Pipline hinzu 
15.
      .PARAMETER PropertyExtended 
16.
         Mit diesem Parameter geben sie eine Komma-Separierte Liste von Eigenschaften an welche sie erhalten möchten. 
17.
             -PropertyExtended "Bildhöhe","Bildbreite","Bitrate" 
18.
 #> 
19.
     param( 
20.
         [Parameter(Mandatory=$true,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)] 
21.
         $fileItem, 
22.
         [String[]] $PropertyExtended = "ALL" 
23.
24.
     begin 
25.
26.
         $shellObject = New-Object -Com Shell.Application 
27.
         $itemProperties = $null 
28.
29.
  
30.
     process 
31.
32.
         if($fileItem.PsIsContainer) 
33.
34.
             $fileItem 
35.
             return 
36.
37.
         $directoryName = $fileItem.DirectoryName 
38.
         $filename = $fileItem.Name 
39.
  
40.
         $folderObject = $shellObject.NameSpace($directoryName) 
41.
         $item = $folderObject.ParseName($filename) 
42.
  
43.
         if(-not $itemProperties) 
44.
45.
             $itemProperties = @{} 
46.
             $counter = 0 
47.
             $columnName = "" 
48.
             if ($PropertyExtended -eq "ALL"){ 
49.
                  #get all properties 
50.
                 do { 
51.
                     $columnName = $folderObject.GetDetailsOf($folderObject.Items, $counter) 
52.
                     if($columnName) { $itemProperties[$counter] = $columnName } 
53.
                     $counter++ 
54.
                 }while($columnName) 
55.
             }else{ 
56.
                 #get user defined properties 
57.
                 do { 
58.
                     $columnName = $folderObject.GetDetailsOf($folderObject.Items, $counter) 
59.
                     foreach($name in $PropertyExtended){ 
60.
                         if ($columnName.toLower() -eq $name.toLower()){ 
61.
                             $itemProperties[$counter] = $columnName 
62.
63.
64.
                     $counter++ 
65.
                 }while($columnName) 
66.
67.
68.
  
69.
         foreach($itemProperty in $itemProperties.Keys) 
70.
71.
             $fileItem | Add-Member NoteProperty $itemProperties[$itemProperty] ` 
72.
                 $folderObject.GetDetailsOf($item, $itemProperty) -ErrorAction ` 
73.
                 SilentlyContinue 
74.
75.
         $fileItem 
76.
77.
78.
  
79.
 $startDir = "\\Server\Freigabe" 
80.
 $filmliste = "C:\filmliste.txt" 
81.
 Get-ChildItem $startDir -Recurse | ?{$_.PSIsContainer -eq $false} | Add-ExtendedFileProperties -PropertyExtended 
82.
 "Bildhöhe","Bildbreite" | select Name,@{Name="Relativer Pfad";e={$relDir = 
83.
 $_.DirectoryName.Replace($startDir,""); if ($relDir -ne ""){echo 
84.
 ".$relDir"}}},Bildhöhe,Bildbreite | out-file $filmliste -Encoding UTF8
So umändern, dass das die werte von Bildhöhe und Bildbreite mit MediaInfo ausliest und diese dann mit in die Filmliste einträgt?
Mitglied: colinardo
09.12.2013, aktualisiert um 11:16 Uhr
Hello again scoorpyn,
habe mir mal die MediaInfo-Ausgabe angesehen und ein paar Zeilen dazu geschrieben.
Zuerst lädst du dir die CommandLine-Version von MediaInfo hier herunter:http://mediaarea.net/download/binary/mediainfo/0.7.65/MediaInfo_CLI_0.7 ...
Dann musst du in Zeile 83 des folgenden Scripts den Pfad zur heruntergeladenen "MediaInfo.exe" eintragen, und deine Pfad natürlich anpassen.
01.
function Add-ExtendedFileProperties{ 
02.
 <# 
03.
     .SYNOPSIS 
04.
        Fügt erweiterte Eigenschaften von Dateien an das Objekt in der Pipline hinzu 
05.
     .DESCRIPTION 
06.
        Extrahiert erweiterte Eigenschaften von Dateien wie z.B. Exif-Daten, Musik- bzw. Filmdetails 
07.
     .EXAMPLE  
08.
            Get-ChildItem "C:\Temp" | Add-ExtendedFileProperties -PropertyExtended "Bildhöhe","Bildbreite","Bitrate" | ft Name,Bildhöhe,Bildbreite,Bitrate 
09.
            Fügt alle nur die Eigenschaften "Bildhöhe","Bildbreite","Bitrate" als zusätzliche Spalten dem Objekt in der Pipline hinzu 
10.
     .EXAMPLE 
11.
            Get-ChildItem "C:\Temp" | Add-ExtendedFileProperties | fl * 
12.
            Fügt alle verfügbaren erweiterten Eigenschaften dem Objekt in der Pipline hinzu 
13.
     .PARAMETER PropertyExtended 
14.
        Mit diesem Parameter geben sie eine Komma-Separierte Liste von Eigenschaften an welche sie erhalten möchten. 
15.
            -PropertyExtended "Bildhöhe","Bildbreite","Bitrate" 
16.
#> 
17.
    param( 
18.
        [Parameter(Mandatory=$true,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)] 
19.
        $fileItem, 
20.
        [String[]] $PropertyExtended = "ALL" 
21.
22.
    begin 
23.
24.
        $shellObject = New-Object -Com Shell.Application 
25.
        $itemProperties = $null 
26.
27.
 
28.
    process 
29.
30.
        if($fileItem.PsIsContainer) 
31.
32.
            $fileItem 
33.
            return 
34.
35.
        $directoryName = $fileItem.DirectoryName 
36.
        $filename = $fileItem.Name 
37.
 
38.
        $folderObject = $shellObject.NameSpace($directoryName) 
39.
        $item = $folderObject.ParseName($filename) 
40.
 
41.
        if(-not $itemProperties) 
42.
43.
            $itemProperties = @{} 
44.
            $counter = 0 
45.
            $columnName = "" 
46.
            if ($PropertyExtended -eq "ALL"){ 
47.
                 #get all properties 
48.
                do { 
49.
                    $columnName = $folderObject.GetDetailsOf($folderObject.Items, $counter) 
50.
                    if($columnName) { $itemProperties[$counter] = $columnName } 
51.
                    $counter++ 
52.
                }while($columnName) 
53.
            }else{ 
54.
                #get user defined properties 
55.
                do { 
56.
                    $columnName = $folderObject.GetDetailsOf($folderObject.Items, $counter) 
57.
                    foreach($name in $PropertyExtended){ 
58.
                        if ($columnName.toLower() -eq $name.toLower()){ 
59.
                            $itemProperties[$counter] = $columnName 
60.
61.
62.
                    $counter++ 
63.
                }while($columnName) 
64.
65.
66.
 
67.
        foreach($itemProperty in $itemProperties.Keys) 
68.
69.
            $fileItem | Add-Member NoteProperty $itemProperties[$itemProperty] ` 
70.
                $folderObject.GetDetailsOf($item, $itemProperty) -ErrorAction ` 
71.
                SilentlyContinue 
72.
73.
        $fileItem 
74.
75.
76.
 
77.
Function getMediaInfo($strPath){ 
78.
    $info = & $mediaInfoPath $strPath | ?{$_ -match "(Width|Height)"} | select -First 2 | %{$_.Split(":")[1].trim().Split(" ")[0]} 
79.
    $obj = New-Object PSObject -Property @{"Bildbreite"=$info[0];"Bildhöhe"=$info[1]} -ErrorAction SilentlyContinue 
80.
    $obj 
81.
82.
 
83.
$mediaInfoPath = "C:\Program Files (x86)\K-Lite Codec Pack\Tools\cmd\mediainfo.exe" 
84.
$startDir = "\\Server\Freigabe" 
85.
$filmliste = "C:\filmliste.txt" 
86.
$list = Get-ChildItem $startDir -Recurse | ?{$_.PSIsContainer -eq $false} | Add-ExtendedFileProperties -PropertyExtended "Bildhöhe","Bildbreite" | select Name,Fullname,@{Name="Relativer Pfad";e={$relDir = $_.DirectoryName.Replace($startDir,""); if ($relDir -ne ""){echo ".$relDir"}}},Bildhöhe,Bildbreite 
87.
$list | %{if($_.Bildbreite -eq ""){$objInfo = getMediaInfo $_.FullName;$_.Bildbreite = $objInfo.Bildbreite;$_.Bildhöhe = $objInfo.Bildhöhe};$_} | select "Name","Relativer Pfad","Bildhöhe","Bildbreite" | ft -AutoSize | out-file $filmliste -Encoding UTF8
probiers mal aus...

Grüße Uwe
Bitte warten ..
Mitglied: Endoro
09.12.2013 um 13:44 Uhr
Hey, nur der Vollständigkeit halber- es geht auch als einfache Batch:
01.
@ECHO OFF &SETLOCAL 
02.
cd videofolder 
03.
for %%a in (*) do ( 
04.
	set "fname=%%~a" 
05.
	for /f "delims=" %%b in ('mediainfo "--inform=General;%%Movie%%" "%%~a"') do set "title=%%b" 
06.
	for /f "delims=" %%b in ('mediainfo "--inform=Video;%%Width%%x%%Height%%" "%%~a"') do set "resolution=%%b" 
07.
	SETLOCAL ENABLEDELAYEDEXPANSION 
08.
	echo("!fname!","%cd%","!resolution!","!title!" 
09.
	endlocal 
10.
)
lg.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 10
gelöst Leider nochmal: Probleme mit GPO (glaube ich) (3)

Frage von Dave-Bowman zum Thema Windows 10 ...

Voice over IP
gelöst Wie war das nochmal mit FritzBox und DECT bei Umstellung auf VoIP (17)

Frage von Realbilly zum Thema Voice over IP ...

Windows Server
gelöst Bereits bekanntes Computerkonto nach Löschung nochmal zu AD hinzufügen (3)

Frage von DeathNote zum Thema Windows Server ...

Windows Server
gelöst Wie hieß das Tool nochmal um die AD Anzeige der Reiter zu erweitern? (7)

Frage von M.Marz zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...