Я готовлю сценарий, который должен использовать некоторые изображения из той же папки, что и скрипт. Изображения должны отображаться в графическом интерфейсе WinForms.Как установить местоположение FromFile в Powershell?
$imgred = [System.Drawing.Image]::FromFile("red.png")
Когда я запускаю сценарий ps1 вручную из папки, просто щелкнув, он загружает изображения и показывает их. К сожалению, я не помню точно, как я настроил это, но насколько я могу, это просто программа по умолчанию для файлов ps1. Когда я запускаю скрипт из cmd-файла (чтобы скрыть окно cmd), он также загружает их.
Но когда я открываю с помощью PowerShell IDE и запускаю его, я получаю ошибки, и никакие значки не отображаются в моем графическом интерфейсе. Когда я открываю с помощью Powershell, он также не может загрузить их.
Единственное различие между этими режимами работают я могу найти с:
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
$scriptPath #always same, the location of script
(Get-Location).Path #scriptlocation when icons loaded, system32 folder when unsuccessful load
такое же поведение при выполнении CD $ scriptPath, поэтому текущая папка, скорее всего, не виновный.
Я знаю, что могу писать $ scriptPath/red.png в каждой строке чтения файла (FromFile), но то, что я хочу, это определить его один раз - расположение по умолчанию для FromFile, а затем просто работать с простым файлом независимо от Я запускаю его.
Что нужно изменить, чтобы путь чтения файлов по умолчанию был таким же, как и в моем расположении сценариев?
хорошее описание! –
Отлично! Спасибо, эта строка сделала это: [System.IO.Directory] :: SetCurrentDirectory ($ scriptPath) – uldics