Mit disem Code können Ordnerstrukturen des Filesystems in eine Textdatei exportiert werden. Es wird der Startordner sowie der Pfad und der Dateiname der Exportdatei angegeben werden. Nach der Erstellung kann direkt die Textdatei geöffnet werden.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $objForm = New-Object System.Windows.Forms.Form $objForm.Text = "FolderListGenerator" $objForm.Size = New-Object System.Drawing.Size(300,200) $objForm.StartPosition = "CenterScreen" $objForm.KeyPreview = $True $objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter") { $path=$objTextBox.Text;$objForm.Close()} }) $objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") { $objForm.Close()} }) $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Size(75,120) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = "OK" $OKButton.Add_Click({$path=$objTextBox1.Text;$file=$objTextBox2.Text;$objForm.Close()}) $objForm.Controls.Add($OKButton) $CancelButton = New-Object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Size(150,120) $CancelButton.Size = New-Object System.Drawing.Size(75,23) $CancelButton.Text = "Cancel" $CancelButton.Add_Click({$objForm.Close()}) $objForm.Controls.Add($CancelButton) $objLabel1 = New-Object System.Windows.Forms.Label $objLabel1.Location = New-Object System.Drawing.Size(10,20) $objLabel1.Size = New-Object System.Drawing.Size(280,20) $objLabel1.Text = "Bitte Verzeichnispfad eingeben (z.B. C:\Folder):" $objForm.Controls.Add($objLabel1) $objTextBox1 = New-Object System.Windows.Forms.TextBox $objTextBox1.Location = New-Object System.Drawing.Size(10,40) $objTextBox1.Size = New-Object System.Drawing.Size(260,20) $objTextBox1.Text = "" $objForm.Controls.Add($objTextBox1) $objLabel2 = New-Object System.Windows.Forms.Label $objLabel2.Location = New-Object System.Drawing.Size(10,70) $objLabel2.Size = New-Object System.Drawing.Size(280,20) $objLabel2.Text = "Bitte Dateiablage eingeben (z.B. C:\temp\folder.txt):" $objForm.Controls.Add($objLabel2) $objTextBox2 = New-Object System.Windows.Forms.TextBox $objTextBox2.Location = New-Object System.Drawing.Size(10,90) $objTextBox2.Size = New-Object System.Drawing.Size(260,20) $objTextBox2.Text = "" $objForm.Controls.Add($objTextBox2) [void] $objForm.ShowDialog() Get-Childitem $path -recurse -filter * | ? { $_.PSisContainer -eq $true} | % {$_.fullname -replace "\\","`t" } | sort | out-file $file $a = new-object -comobject wscript.shell $intAnswer = $a.popup("Exportdatei öffnen?",0,"FolderListGenerator",4) If ($intAnswer -eq 6) { Invoke-Item $file } else { $a.popup("Datei erstellt") }
Als Trennzeichen wird der TAB genutzt, so dass ein Import z.B. in Excel ohne Probleme funktionieren sollte.