Получите путь к файлу из меню проводника в переменную Powershell

#windows #powershell

Вопрос:

Мне нужно выполнить вызов API, в котором требуется операция загрузки файла, как я могу предложить пользователю выбрать файл из проводника и использовать путь после сохранения в переменной. Я нашел аналогичный вопрос, но он работает только для папки.

Ответ №1:

В Windows вы можете воспользоваться преимуществами OpenFileDialog компонента Windows Forms:

 function Select-File {
  param([string]$Directory = $PWD)

  $dialog = [System.Windows.Forms.OpenFileDialog]::new()

  $dialog.InitialDirectory = (Resolve-Path $Directory).Path
  $dialog.RestoreDirectory = $true

  $result = $dialog.ShowDialog()

  if($result -eq [System.Windows.Forms.DialogResult]::OK){
    return $dialog.FileName
  }
}
 

Затем используйте вот так:

 $path = Select-File
if(Test-Path $path){
  Upload-File -Path $path
}