Powershell – Afficher une boîte de dialogue pour sélectionner un fichier
Voici un script particulièrement utile pour avoir la possibilité de sélectionner un fichier à travers une boîte de dialogue lors de l’exécution d’un script powershell.
Pour être exact, cela permet de renseigner le chemin du fichier dans une variable.
Ce script provient du site suivant: http://www.peetersonline.nl/2008/10/powershell-open-file-dialog-box/
# Select-FileDialog Function # # Created by Hugo Peeters # # http://www.peetersonline.nl # ############################### # Note: store in your profile for easy use # Example use: # $file = Select-FileDialog -Title "Select a file" -Directory "D:\scripts" -Filter "Powershell Scripts|(*.ps1)" function Select-FileDialog { param([string]$Title,[string]$Directory,[string]$Filter="All Files (*.*)|*.*") [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null $objForm = New-Object System.Windows.Forms.OpenFileDialog $objForm.InitialDirectory = $Directory $objForm.Filter = $Filter $objForm.Title = $Title $Show = $objForm.ShowDialog() If ($Show -eq "OK") { Return $objForm.FileName } Else { Write-Error "Operation cancelled by user." } }
$file = Select-FileDialog -Title "Select a file" -Directory "D:\scripts" -Filter "Powershell Scripts|(*.ps1)"
A l’utilisation, on peut modifier les différents paramètres:
- Title = Ce qui s’affiche dans l’entête de la boîte de dialogue
- Directory = Non obligatoire, permet de sélectionner un dossier où chercher le fichier à sélectionner
- Filter = Modifier le filtre à votre guise pour indiquer le type de fichier qui doit être sélectionné.
- L’astuce: il est possible d’indiquer (à la place de (*.ps1), le nom complet d’un fichier (ex: index.html) pour être sûr que l’utilisateur sélectionne bien un fichier particulier.