Archives: 21. Januar 2012

Stammbaum

Hi,

falls ihr mit mir verwandt seid, so könnt ihr gerne bei unserem Online-Stammbaum mitmachen:

Hier gehts zum Stammbaum

Häufigste Familien im Stammbaum:
Kellers, Hesping, Stapper, Grothues, Hopster, Afting, Brameier, Mülder, Echelmeyer, Rauhs, Reusken, Haking, Holtkemper, Ester, Altenschulte,…

Datenschutzrichtlinie 

Die Seite eignet sich prima zum gemeinsamen Verwalten von Stammbäumen und die Mitgliedschaft ist kostenlos.
Wenn Ihr einmal Mitglied seid, so könnte Ihr den Stammbaum sehen und bearbeiten und sogar falls hinterlegt die Kontaktdaten der Verwandten einsehen.
Bei Fragen findet ihr meine Kontaktdaten unter Über mich

Gruß,

Matthias

PLS,M3U,MPCPL Playliste mit Powershell erstellen

Hallo mal wieder,

heute gibt es was zum programmieren:
Hattet ihr es auch schon öfters, dass Ihr mehrere Ordner habt und für jeden Ordner eine Playliste automatisch erstellen möchtet?

Dann  habe ich vielleicht das richtige für euch.
Ich habe ein kleines Powershell Script welches für jeden Ordner unterhalb eines Root-Ordners eine MPCPL, PLS oder M3U Playliste anlegt und in diese Dateien mit bestimmten Endungen aufnimmt.

Natürlich bleibt es euch frei dies zu bearbeiten – falls es dann doch mal Probleme geben sollte.
Hoffe es hilft euch.

Hier nun das Script: – Speichert es als .ps1 Datei und gibt die 4 gleich genannten Parameter mit

# Parameters for Script
	## -source : The Subfolders of the source path will be checked for MediaFiles (recursivly)
	## -destination : Specify the path where to save the Playlists - Each subfolder gets a Playlist-File with the folder name
	## -playlisttype : MPCPL, PLS OR M3U
	## -filetypes : Which files should be in the playlist - Seperate multiple by ","
	param([string]$source = "\\server\share",[string]$destination = "\\server\share\PLS",[string]$playlisttype = "mpcpl",[string]$filetypes = "avi,wmv,mpg,asf,mp3,ogg,wav,wma,mp4,mkv,mov")

	#$filetypesarray = $filetypes.split(",") | where-object {$_ -ne ","}
	$filetypesmatch = "." + $filetypes.Replace(",", "|.")
	$playlisttype = $playlisttype.ToLower()
	$dir = get-childitem -literalPath $source -force
    $subdirs = @($Dir | where {$_.PSIsContainer -eq "True"} | Sort-Object $_.DirectoryName)
	Foreach ($subdir in $subdirs)
    {
		[int]$fileindex = 0
		$FileName = $subdir.Name + "." + $playlisttype
		$outfile = $destination + "\" + $FileName		

		$searchfiles = (Get-Childitem -literalPath $subdir.PSPath -recurse -force) | where { $_.Extension -match $filetypesmatch }
        Foreach ($searchfile in $searchfiles)
    	{
			if ($fileindex -eq 0)
			{
				switch ($playlisttype) {
					"mpcpl"
					{
						$output = "MPCPLAYLIST"
						Write-Output $output | Out-File $outfile -append
					}
					"pls"
					{
						$output = ""
						Write-Output $output | Out-File $outfile -append
					}
					default
					{
					}
				}
			}


			switch ($playlisttype) {
				"mpcpl"
				{
					[string]$output = [string]$fileindex + ",type,0"
					Write-Output $output | Out-File $outfile -append
					[string]$output = [string]$fileindex + ",filename," + $searchfile.FullName
					Write-Output $output | Out-File $outfile -append
					$fileindex = $fileindex + 1
				}
				"pls"
				{
					$fileindex = $fileindex + 1
					[string]$output = "File" + [string]$fileindex + "=" + $searchfile.FullName
					Write-Output $output | Out-File $outfile -append
				}
				default
				{
					[string]$output = $searchfile.FullName
					Write-Output $output | Out-File $outfile -append -Encoding ASCII
				}
			}
		}
		if ($searchfiles.Count -ge 1)
		{
			switch ($playlisttype) {
				"pls"
				{
					[string]$output = "NumberOfEntries=" + [string]$fileindex
					Write-Output $output | Out-File $outfile -append
				}
				default
				{
				}
			}
		}
	}