Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi PowerShell-Skript mit Parametern ausführen (https://www.delphipraxis.net/211771-powershell-skript-mit-parametern-ausfuehren.html)

Blitzschutz1 31. Okt 2022 19:50


PowerShell-Skript mit Parametern ausführen
 
Guten Abend,

folgenden Code nutze ich zur Ausführung einer *.ps1-Datei (wobei die hier angegeben Powershell-Datei nur ein Beispiel ist):

Code:
ShellExecute(Handle, 'open', 'powershell.exe', '"-Command" "if((Get-ExecutionPolicy ) -ne ''AllSigned'') '
             + '{ Set-ExecutionPolicy -Scope Process Bypass }; & ''C:\Temp\test.ps1''"', '', SW_SHOWNORMAL);
Der Code stammt von jaenicke aus der "Entwickler-Ecke" https://entwickler-ecke.de/topic_She...37d14903350e40.

Die Skript-Datei:

Code:
param([string]$Str1,[string]$Str2,[string]$Str3)
Write-Output "Erster Parameter $Str1 " + "Zweiter Parameter $Str2 " + "Dritter Parameter $Str3 " | Out-File -FilePath testparameter.txt
Wie bekomme ich die drei Parameter übergeben?
Einfach mit Leerzeichen nach ps1 im ersten Code an den Skriptpfad anhängen funktioniert nicht (weder mit Anführungszeichen, noch mit Hochkomma oder ohne alles). Ich habe keine Idee mehr...

Danke!

Blitzschutz1 31. Okt 2022 19:53

AW: PowerShell-Skript mit Parametern ausführen
 
Vergessen zu schreiben:
Skript läuft in der Powershell-Umgebung mit
.\test.ps1 "Parameter1" "Parameter2" "Parameter3"
einwandfrei

HolgerX 31. Okt 2022 20:10

AW: PowerShell-Skript mit Parametern ausführen
 
Hmm..

https://superuser.com/questions/1080...mmand-from-cmd

Hier wird auf die richtige Verwendung von " " und ' ' eingegangen...
Vielleicht ist dies hilfreich..

Blitzschutz1 2. Nov 2022 17:33

AW: PowerShell-Skript mit Parametern ausführen
 
Danke für den Link!

Ich habe mir schon fast gedacht, dass es etwas mit den Anführungszeichen zu tun haben könnte. In PHP gibt es auch manchmal solche "abenteuerliche" Hochkomma- oder Anführungszeichen-Kaskaden wenn man einen Javascript einbindet und dort Parameter übergibt.

Allerdings kann ich es momentan nicht testen, da ich an einem Rechner ohne Delphi sitze.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz