Es soll eine Textdatei erstellt werden, die zur Dokumentation von Video-Dateien verwendet wird. Die Video-Dateien sind nach Themengebieten auf mehrere Verzeichnisse aufgeteilt.
Es muss kein Video-Verzeichnis sein – wie in diesem Beispiel, es kann ein beliebiges Verzeichnis von Dateien sein, welches man für Dokumentationszwecke in eine Datei speichern möchte. Wenn es andere Inhalte wären, zum Beispiel Bücher oder Audio-Dateien, muss man Kleinigkeiten im Programm anpassen.
Aber es geht um Videos. In diesem Beispiel sind es die Unterverzeichnisse
bitcoin computer cyber digitalisierung internet krypto programmieren spiel
In jedem Unterverzeichnis sind Video-Dateien, die zur Bezeichnung des Verzeichnisses passen. Das zu erstellende PowerShell-Programm soll eine formatierte Liste der Film-Titel erstellen.
Clear-Host löscht den Bildschirm. $input_path zeigt auf der Video-Verzeichnis. $output_file ist der Name der zu erzeugenden Textdatei. In $Text wird der auszugebende Text gesammelt. In $TotalSize wird die Größe des Verzeichnisses berechnet, indem die Größe der einzelnen Dateien aufsummiert wird. $MARGIN_LEFT ist die Breite des linken Rands, $DIRECTORY_LENGTH ist die Breite, die für den Namen des Verzeichnisses reserviert wird.
$d enthält alle Unterverzeichnisse. $Name ist der vollständige Pfad eines Verzeichnisses, $Count enthält die Anzahl der Videos (=.mp4-Dateien ), $Show ist die Überschrift eines Verzeichnisses und enthält auch die Anzahl der Videos.
$f sind alle Video-Dateien. Für jede Video-Datei wird die Gesamtgröße in $TotalSize summiert, $content ist eine Zeile mit einem Video. Aus dieser Zeile wird eine 10-stellige nummerische Id, die mit einem Bindestrich beginnt der Übersichtlichkeit halber entfernt.
Die Funktion FormatSize() erzeugt eine leichter lesbare Datengröße.
Code
#Inhaltsverzeichnis eines Video-Archivs # Clear-Host $input_path = ‘S:\odrive\drive.ccc.at-admin (WebDAV)\clubintern\Videos\’ $output_file = ‘s:\desktop\video-content.txt’ $Text = "" $TotalSize = 0 $MARGIN_LEFT = 6 $DIRECTORY_LENGTH = 16 $d = Get-ChildItem -Directory -Path $input_path foreach ($dir in $d) { $Name = $input_path + $dir.Name $Count = (Get-ChildItem $Name -Filter "*.mp4").Count $Show = ($Count.ToString()).PadLeft($MARGIN_LEFT,' ') + " " + $dir.Name $Text += $Show + "`r`n" $f = Get-ChildItem -File -Filter "*.mp4" -Path ($input_path+$dir.Name) foreach ($file in $f) { $TotalSize += $file.length $content = " ".PadLeft($MARGIN_LEFT,' ') + " " + $dir.Name.PadRight($DIRECTORY_LENGTH,' ') + $file.Name.Replace(".mp4","") $regex = [regex] '\-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' $Text += $regex.Replace($content,"") + "`r`n" } } function FormatSize([long]$Size) { $Size_KB = 1024 $Size_MB = $Size_KB*$Size_KB $Size_GB = $Size_MB*$Size_KB $Size_TB = $Size_GB*$Size_KB $TB = [math]::floor([decimal]($Size/$Size_TB)) $Size = $Size - $TB*$Size_TB $GB = [math]::floor([decimal]($Size/$Size_GB)) $Size = $Size - $GB*$Size_GB $MB = [math]::floor([decimal]($Size/$Size_MB)) $Size = $Size - $MB*$Size_MB $KB = [math]::floor([decimal]($Size/$Size_KB)) $Size = $Size - $KB*$Size_KB $strFinal = "" if ($TB -gt 0) { $strFinal += "$TB TB " } if ($GB -gt 0) { $strFinal += "$GB GB " } if ($MB -gt 0) { $strFinal += "$MB MB " } if ($KB -gt 0) { $strFinal += "$KB kB " } if ($Size -gt 0) { $strFinal += "$Size B " } return $strFinal } $Header = "Video-Verzeichnis`r`n" $Header += "=================`r`n" $Header += "Größe: $TotalSize`r`n" $Header += FormatSize($TotalSize) $Header += "`r`n`r`n" $Text = $Header + $Text $Text > $output_file
Ausgabe (Fragment)
Video-Verzeichnis
=================
Größe: 125162704088
116 GB 580 MB 467 kB 216 B
30 bitcoin
bitcoin Börse vor acht-Die Bitcoin-Blase
bitcoin extra 3-Ach- und Krachgeschichten_ Bitcoin
bitcoin extra 3-Bitcoin - Spekulationsobjekt und Statussymbol
bitcoin Gut zu wissen-Nationalpark _ Borkenkäfer _ Bitcoins
bitcoin Gut zu wissen-Was macht Bitcoin so fälschungssicher_
bitcoin heute 19 Uhr-Bitcoin-Debüt an der Börse
...
Franz war pensionierter HTL Lehrer (TGM), Präsident von ClubComputer, Herausgeber der Clubzeitung PCNEWS und betreute unser Clubtelefon und Internet Support. Er war leidenschaftlicher Rapid Wien Fan. Er ist leider Anfang Jänner 2024 nach langer schwerer Krankheit verstorben.
Neueste Kommentare