Ich habe ein Problem mit der Übergabe eines Parameters mit Leerzeichen in einem Powershell-Skript. Es scheint nur vor dem Raum mit dem ersten Teil der Parameterkette zu arbeitenÜbergeben einer Zeichenfolge mit Leerzeichen in einen Parameter - Powershell
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True, ParameterSetName='firewallCommand',Position=0,HelpMessage="Input Firewall Index")]
[string]$fwName,
[Parameter(Mandatory=$True, ParameterSetName='firewallCommand',Position=1, HelpMessage="Input Firewall Command")]
[string]$fwCommand)
Im Skript dies die Parameter an den folgenden Befehl als solche passieren:
cprid_util -server $firewallIpAdd -verbose rexec -rcmd "$fwCommand"
in der Befehlszeile, wenn ich betreibe das es funktioniert:
.\fwcommand_run.ps1 -fwName firewall-name -fwCommand "ps"
Wenn ich dies ausführen es nicht funktioniert überhaupt:
.\fwcommand_run.ps1 -fwName firewall-name -fwCommand "ps -ef"
Aber wenn ich den Befehl direkt aufrufen es funktioniert:
cprid_util -server 10.1.128.4 -verbose rexec -rcmd ps -ef
Ja ich versucht habe, die Zitate aus dem Skript zu entfernen und die Befehlszeile, habe ich versucht, auch das Hinzufügen 2 x doppelte Anführungszeichen Ich habe versucht, einfache Anführungszeichen zu verwenden. So ziemlich alle Permutationen. – user1776732
Haben Sie versucht, den Anruf-Operator '&'? '& cprid_util ...' –
Ich schaffte es, es zu funktionieren, indem ich es aufspalte und beide hereinbringe. Wird die Auflösung posten. – user1776732