Werte Übergabe bei Runtime.getRuntime().exec()
Hallo Zusammen,
ich möchte via Java ein Power Shell Script ausführen. Das funktioniert mit Runtime.getRuntime().exec("powershell.exe C:/temp/test.ps1") auch wunderbar. Nun möchte ich wissen, gibt es eine Möglichkeit einen Wert mit zu übergeben? Diesen möchte ich dann in eine Power Shell Variable speichern, welche ich dann wiederum im Script verwenden möchte.
Gruß Tobias
ich möchte via Java ein Power Shell Script ausführen. Das funktioniert mit Runtime.getRuntime().exec("powershell.exe C:/temp/test.ps1") auch wunderbar. Nun möchte ich wissen, gibt es eine Möglichkeit einen Wert mit zu übergeben? Diesen möchte ich dann in eine Power Shell Variable speichern, welche ich dann wiederum im Script verwenden möchte.
Gruß Tobias
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 305457
Url: https://administrator.de/contentid/305457
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
3 Kommentare
Neuester Kommentar
Im Powershell-Skript machst du folgendes im Kopf:
Dann kannst du deinem Powershell-Skript die Parameter auf der Kommandozeile mit übergeben
"powershell -File C:\script.ps1 Parameter1 Parameter2"
Gruß skybird
param(
$param1,
$param2
)
write-host $param1
write-host $param2
"powershell -File C:\script.ps1 Parameter1 Parameter2"
Gruß skybird
Wie @129413 schreibt die Parameter-Deklaration oben in dein Skript schreiben
und dann dazu passend ein Demo-Java-Skript:
Grüße Uwe
param(
$param1,
$param2
)
write-host $param1
write-host $param2
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class test {
public static void main(String args) {
try{
// Pfad zum Skript
String path = "C:\\demo.ps1";
// Parameter zur Übergabe an das Powershell-Skript
String p1 = "Mein erster Parameter";
String p2 = "Mein zweiter Parameter";
// Kommandozeile zusammensetzen
String cmd = "powershell.exe -File \"" + path + "\" \"" + p1 + "\" \"" + p2 + "\"";
// CMD ausführen
Process p = Runtime.getRuntime().exec(cmd);
// warten bis er zu Ende ist
p.waitFor();
// Konsolenausgabe abfangen und in der Debug-Konsole ausgeben ---------------
StringBuffer output = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
System.out.println("Output des Powershell-Skripts:\n" + output);
// ---------------------------------------------------------------------------
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}