Piktogramm
Admiral
- Registriert
- Okt. 2008
- Beiträge
- 9.188
Ziel: Ein String zusammenbasteln, der den Pfad zu einer .exe Ethält, den String um Parameter erweitern und den String schlussendlich als Befehl ausführen. Im Beispiel nur ein Parameter
Gibt folgende Fehlermeldung beim Aufführen von Zeile 4
Rufe ich in der Powershell, also außerhalb des Scripts jedoch
Ok es liegt die Vermtung nahe
Meine Frage ist also, wie bekomme ich den Inhalt von
PowerShell:
$cmdstring = -join ('"c:\Program Files\Program Name\foobar.exe"', " ")
$cmdstring = -join (cmdstring, "/parameter batz ")
Invoke-Command -ScriptBlock {&$cmdstring}
Gibt folgende Fehlermeldung beim Aufführen von Zeile 4
Code:
The term '"c:\Program Files\Program Name\foobar.exe" /parameter batz ' is not recognized as a name of a
cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
Rufe ich in der Powershell, also außerhalb des Scripts jedoch
& "c:\Program Files\Program Name\foobar.exe" /parameter batz
auf läufts.Ok es liegt die Vermtung nahe
$cmdstring = -join ("c:\Program Files\Program Name\foobar.exe", " ")
zu schreiben, also die Hochklammer '' wegzulassen. Dann versucht Powershell aber "c:\Program" auszuführen und "Files\Program" als ersten Paramater zu übergeben, was reichlich sinnlos ist.Meine Frage ist also, wie bekomme ich den Inhalt von
$cmdstring
ausgeführt? Was explizit gewünscht ist, ist eine weitere Powershellinstanz zu öffnen und den Befehl darin auszurühren.