Dp0 Alternative in Powershell
Hallo Forummitglieder
Ich möchte über Powershell Applikationen installieren. Dabei möchte ich, dass Powershell die Installationsquelle Dynamisch findet.
Unter Batch war dies folgendermassen möglich
Wenn ich z.B in einem Verzeichnis als Beispiel C:\Work eine Batch Datei erstelle, welcche die %~dp0setup.exe als Eintrag hat, dann wird das setup.exe ausgeführt und der entsprechende Pfad in welchem die Datei liegt vorgängig angehängt. Also C:\Work\setup.exe
Nun bräuchte ich eine Alternative für den %~dp0 in Powershell.
Ich habe folgender Befehl versucht, aber dieser funktioniert auf meiner Windows 10 Maschine nicht
$ScriptRoot = Split-Path $MyInvocation.MyCommand.Path –Parent
Wie müsste das Skript aussehen, so das das Setup.exe mit dem dynamischen Pfad ausgeführt wird?
Vielen Dank im Voraus für Eure Hilfe.
Ich möchte über Powershell Applikationen installieren. Dabei möchte ich, dass Powershell die Installationsquelle Dynamisch findet.
Unter Batch war dies folgendermassen möglich
Wenn ich z.B in einem Verzeichnis als Beispiel C:\Work eine Batch Datei erstelle, welcche die %~dp0setup.exe als Eintrag hat, dann wird das setup.exe ausgeführt und der entsprechende Pfad in welchem die Datei liegt vorgängig angehängt. Also C:\Work\setup.exe
Nun bräuchte ich eine Alternative für den %~dp0 in Powershell.
Ich habe folgender Befehl versucht, aber dieser funktioniert auf meiner Windows 10 Maschine nicht
$ScriptRoot = Split-Path $MyInvocation.MyCommand.Path –Parent
Wie müsste das Skript aussehen, so das das Setup.exe mit dem dynamischen Pfad ausgeführt wird?
Vielen Dank im Voraus für Eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 619767
Url: https://administrator.de/contentid/619767
Ausgedruckt am: 19.11.2024 um 06:11 Uhr
7 Kommentare
Neuester Kommentar
$psscriptroot
Zitat von @Ralus67:
Hallo Window
Kannst du mir ein Beispiel zeigen, wie das in einer ps1 aussehen müsste?
?? Steht doch oben, die Variable $psscriptroot wird automatisch von der Powershell mit dem Pfad gefüllt indem das Skript liegt ...Hallo Window
Kannst du mir ein Beispiel zeigen, wie das in einer ps1 aussehen müsste?
Einfach mal den Link lesen bitte! Danke.
Du kannst diese nicht in der ISE ausprobieren, dazu musst du sie in ein Skript schreiben und dieses dann ausführen, weil sie nur gefüllt wird wenn sie in einem Skript liegt!
In einem Skript kannst du die Variable dann wie gehabt nutzen und mit anderen Strings kombinieren
"$psscriptroot\datei.exe"
Alternativ zum Weg den dir @Windows schon geschildert hat ginge auch get-Location.
In beiden Fällen muss aber ein Script dahinter stehen. In der Console bekommst du nur $Null zurück.
Grüße!
In beiden Fällen muss aber ein Script dahinter stehen. In der Console bekommst du nur $Null zurück.
Grüße!
Weil das aktuelle Verzeichnis (Working Dir) nicht zwingend das sein muss in dem auch das Skript liegt. Z.B. wenn das Skript elevated ausgeführt wird ist dann oft C:\Windows\system32 das aktuelle "Working Dir" und dann fällt das auf die Fresse.
Aber offensichtlich hat der TO sowieso das Interesse verloren, warum auch immer ... Steht ja oben alles mehrfach sauber erläutert.
Aber offensichtlich hat der TO sowieso das Interesse verloren, warum auch immer ... Steht ja oben alles mehrfach sauber erläutert.
Weil sich A) nicht immer alles immer im gleichen Folder befinden muss oder B) man manchmal auch nur feststellen von wo aus das Script agiert um den Pfad an eine Funktion oder als Return ausgeben zu können.
Für mich klingt die Frage des TO schlüssig.