Parameter an Powershell/cmd zurück geben

Für allgemeine Fragen zur Programmierung mit PureBasic.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Parameter an Powershell/cmd zurück geben

Beitrag von haggi »

Hallo liebes Foum,

ich möchte ein von mir erstelltes Programm per Powershell anstarten und beim beenden von meinem Programm einen Parameter an das Skript übergeben.

Wie kann ich dasss den Realisieren? gibt es da einen Befehl den ich noch nicht gefunden habe? muss ich das über die stdout machen, wenn ja wie? oder geht das anderst?

Ich habe bereits gesucht, aber leider bisher nichts gefunden was mir so richtig weiter hilft.

Die Console befehle scheinen mir da nicht weiter zu helfen, da diese ja für die CMD gedacht sind und PB ein seperates Fenster dafür öffnet. seh ich das richtig?

Besten Dank bereits im Vorraus für eure Mühe!

Haggi
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Parameter an Powershell/cmd zurück geben

Beitrag von Sicro »

Test.exe (kompiliert als Console-Programm):

Code: Alles auswählen

OpenConsole()
Print("Parameter1 Parameter2")
Powershell-Code:

Code: Alles auswählen

$parameter = $(Pfad_zur_Test.exe)
In der Variable $parameter steht dann "Parameter1 Parameter2".

Weitere Informationen findest du hier:
https://superuser.com/questions/1137190 ... ws/1376771
Zuletzt geändert von Sicro am 18.01.2021 00:34, insgesamt 2-mal geändert.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Re: Parameter an Powershell/cmd zurück geben

Beitrag von haggi »

Hallo Sicro,

komisch hatte ich eigentlich getestet. Vielen Dank für deine Hilfe!

kann ich das auch ohne Console-Programm machen? da ich eine GUI anzeigen möchte. Sorry hatte ich im ersten Post nicht geschrieben!

Danke für deine Mühe!

Haggi
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Parameter an Powershell/cmd zurück geben

Beitrag von Sicro »

OpenConsole() hat im obigem Code noch gefehlt.

J̶a̶,̶ ̶o̶h̶n̶e̶ ̶C̶o̶n̶s̶o̶l̶e̶ ̶f̶u̶n̶k̶t̶i̶o̶n̶i̶e̶r̶t̶ ̶e̶s̶ ̶a̶u̶c̶h̶,̶ ̶a̶b̶e̶r̶ ̶b̶e̶d̶e̶n̶k̶e̶,̶ ̶d̶a̶s̶s̶ ̶d̶a̶s̶ ̶S̶k̶r̶i̶p̶t̶ ̶w̶a̶r̶t̶e̶t̶ ̶b̶i̶s̶ ̶d̶a̶s̶ ̶P̶r̶o̶g̶r̶a̶m̶m̶ ̶(̶i̶m̶ ̶B̶e̶i̶s̶p̶i̶e̶l̶ ̶"̶T̶e̶s̶t̶.̶e̶x̶e̶"̶)̶ ̶b̶e̶e̶n̶d̶e̶t̶ ̶w̶u̶r̶d̶e̶.̶

Edit: Geht doch nicht ohne Console :coderselixir:
Zuletzt geändert von Sicro am 20.01.2021 19:18, insgesamt 1-mal geändert.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Re: Parameter an Powershell/cmd zurück geben

Beitrag von haggi »

Hi Sicro,

ja das mit dem skript ist klar und möchte ich genau so haben ;)

Komisch ist, das ich das so getestet hatte ... aber ich teste es nochmal!

Danke nochmal!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Parameter an Powershell/cmd zurück geben

Beitrag von NicTheQuick »

Dein Purebasicprogramm kann auch Exitcodes zurückgeben, falls dir eine einfache Zahl reicht:

Code: Alles auswählen

End 104
Keine Ahnung wie das dann in Powershell aussehen muss. Vielleicht so?

Code: Alles auswählen

PurebasicProgramm.exe
Write-Output $LASTEXITCODE
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Parameter an Powershell/cmd zurück geben

Beitrag von Sicro »

@haggi:
Sorry, geht doch nicht ohne Executable-Format "Console". Das habe ich wohl beim Testen eingestellt gelassen, als ich den OpenWindow()-Code eingebaut habe.
GUI kannst du mit Executable-Format "Console" aber trotzdem anzeigen lassen.
Übrigens kannst du auch das Dollarzeichen weglassen, wie ich gerade herausgefunden habe:

Code: Alles auswählen

$parameter = (Pfad_zur_Test.exe)
@NicTheQuick:

Code: Alles auswählen

$process = (Start-Process -FilePath "Pfad_zur_Test.exe" -PassThru -Wait)
echo $process.ExitCode
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

Re: Parameter an Powershell/cmd zurück geben

Beitrag von haggi »

Hi Ihr beiden,

erst mal Sorry für die verspätete Antowort von mir!

Sicro, du hast das unter win7 getestet? bei win10h2 hat das leider nicht geklappt. hab deine vorlage benutzt dafür.

@Nick Ja daran hab ich shcon gedacht, danke für den Hinweis! Es schränkt halt etwas ein ... daher wäre eine richtige Ausgabe natürlich besser. aber das geht auch so.

Liebe Grüße und Danke für eure Bemühungen.

Haggi
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Parameter an Powershell/cmd zurück geben

Beitrag von Sicro »

haggi hat geschrieben:Sicro, du hast das unter win7 getestet? bei win10h2 hat das leider nicht geklappt. hab deine vorlage benutzt dafür.
Ja, für Windows-Sachen verwende ich immer die in meiner Signatur erwähnte Windows-Version, falls ich keine andere Version in meinem Beitragstext nenne.

Schade, dass es bei dir nicht funktioniert. Versuche mal das:

Code: Alles auswählen

$cmdOutput = <Pfad_zu_Test.exe> | Out-String
Weitere Informationen findest du hier:
https://stackoverflow.com/questions/809 ... n-powershe
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Antworten