Ich bereite ein Skript vor, das einige Bilder aus dem gleichen Ordner wie das Skript verwenden muss. Die Bilder werden auf der WinForms GUI angezeigt.Wie wird FromFile in Powershell festgelegt?
$imgred = [System.Drawing.Image]::FromFile("red.png")
Wenn ich das ps1-Skript manuell aus dem Ordner nur durch Klicken ausführen, lädt es Bilder und zeigt sie an. Leider erinnere ich mich nicht genau, wie ich das eingerichtet habe, aber so weit ich kann, war es nur das Standardprogramm für ps1-Dateien. Wenn ich das Skript von einer cmd-Datei aus führe (um das cmd-Fenster auszublenden), werden auch diese geladen.
Aber wenn ich mit PowerShell IDE öffnen und es ausführen, erhalte ich Fehler und keine Symbole werden auf meiner GUI angezeigt. Wenn ich mit Powershell öffne, kann es auch nicht geladen werden.
Der einzige Unterschied zwischen diesen Modi laufen I ist mit finden:
$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
gleiche Verhalten, wenn cd $ scriptPath tun, so dass der aktuelle Ordner ist höchstwahrscheinlich nicht der Schuldige.
Ich weiß, ich kann $ scriptPath/red.png in jede Datei lesen Zeile (FromFile) schreiben, aber was ich will, ist es einmal zu definieren - der Standard-Speicherort für FromFile - und dann einfach Dateiname arbeiten unabhängig von der wie ich es betreibe.
Was ist zu ändern, so dass der Standardpfad zum Lesen von Dateien derselbe ist wie der Speicherort meines Skripts?
gute Erklärung! –
Ausgezeichnet! Danke, diese Zeile hat es geschafft: [System.IO.Directory] :: SetCurrentDirectory ($ scriptPath) – uldics