Lokalen Ordner auswählen und ggf. erstellen

Nicht selten muss man Daten auf lokale Ordner kopieren oder aus einem lokalen Ordner lesen. Wer ein wenig Tipp-faul ist, macht das gerne per GUI. Darum habe ich hier ein Skript gefunden und erweitert, welches einen Ordner per GUI auswählen oder erstellen lässt. Sollte die GUI unterbrochen werden, kann der Pfad statt dessen anschl. auch in die CLI eingegeben werden:

param (
	$LocalFolder
)

if(!$LocalFolder){
	# Funktionen definieren
	Function Get-Folder(){
		Add-Type -AssemblyName System.Windows.Forms
		$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
		$FolderBrowser.Description = "Bitte Zielordner auswählen..."
		[void]$FolderBrowser.ShowDialog()
		$FolderBrowser.SelectedPath
	}
	$Folder = Get-Folder
	
	if(!$Folder){
		Write-Host "Auswahl wurde abgebrochen." -ForegroundColor Red
		$Folder = Read-Host "Bitte Pfad eintragen"

		# Etwaiges endständiges Zeichen kürzen
		while($Folder -like "*\"){
			$Folder = $Folder.Substring(0,($Folder.Length - 1))
		}
		
	}
}else{
	$Folder = $LocalFolder
}

if($Folder){
	# Etwaiges endständiges Zeichen kürzen
	while($Folder -like "*\"){
		$Folder = $Folder.Substring(0,($Folder.Length - 1))
	}
	
	# Ordner erstellen wenn es ihn nicht bereits gibt
	if(!(Test-Path $Folder)){
		New-Item -Type Directory $Folder | Out-Null
	}

	return $Folder
}