#region SETTINGS
Using NameSpace System.Windows.Forms
[CmdletBinding()]Param([parameter(ValueFromRemainingArguments)][string[]]$items)
Add-Type -AssemblyName System.Windows.Forms
[Application]::EnableVisualStyles()
[char[]]$invalid = [System.IO.Path]::GetInvalidPathChars()+58
#endregion SETTINGS
#region CONTROLS
$Form = [Form]@{AutoSize=$true; Font="Tahoma,12"; Size="10,10"; StartPosition="CenterScreen"; Text="Ordner erstellen und Selektion verschieben"; KeyPreview=$true}
$TLP = [TableLayoutPanel]@{Dock="fill"; AutoSize=$true}
$Label = [Label]@{Text="Ordnername:"; AutoSize=$true; Margin="10,12,0,10"}
$Textbox = [Textbox]@{Size="400,20"; Dock="fill"; Margin="10,10,10,10"}
$Button = [Button]@{Text="erstellen"; Margin="10,10,10,10"; Anchor="Bottom"; Size="100,40"; Enabled=$false}
$Status = [Textbox]@{Text=" {0} Objekte selektiert" -f $items.count; AutoSize=$true; Enabled=$false; Dock="fill"}
#endregion CONTROLS
#region EVENTS
$Form.Add_Load({$this.MaximumSize = "1920,{0}" -f $this.PreferredSize.Height})
$Form.Add_KeyDown({switch ($_.KeyCode) {"return" {$Button.PerformClick()} "Escape" {$this.Hide()}}})
$Textbox.Add_KeyPress({if (![char]::isControl($_.KeyChar) -and $_.KeyChar -in $invalid) {$_.Handled = $true}})
$Textbox.Add_TextChanged({$target=$this.Text.TrimEnd('\ '); $Button.Enabled = $target -and !(Test-Path $target) -and (Test-Path $target -IsValid)})
$Button.Add_Click({
$this.TopLevelControl.Hide()
$nd = md -Force $Textbox.Text.TrimEnd('\ ')
move -path $items -destination $nd
})
#endregion EVENTS
#region ADJUST
Foreach ($c in $Button,$Status){$TLP.SetColumnSpan($c,2)}
$TLP.Controls.Add($Label,0,0)
$TLP.Controls.Add($Textbox,1,0)
$TLP.Controls.Add($Button,0,1)
$TLP.Controls.Add($Status,0,2)
$Form.Controls.Add($TLP)
#endregion ADJUST
#region RUN
[void]$Form.ShowDialog()
#endregion RUN