Powershell scheint leere Zeichenfolgenargumente zu löschen, wenn sie an einen Befehl übergeben werden. Ich habe diesen CodeÜbergabe leerer Argumente an ausführbare Dateien mit Powershell
PS D:\> $b.name = "foo bar"
PS D:\> ./echoargs $b.name
Arg 0 is D:\echoargs.exe
Arg 1 is foo bar
PS D:\> $b.name = ""
PS D:\> ./echoargs $b.name
Arg 0 is D:\echoargs.exe
Sie können davon ausgehen, dass $ b ein 'Name' Mitglied hat. Wie kann ich dies als ein Argument an die exe übergeben, auch wenn der Wert eine leere Zeichenfolge ist. Ich habe versucht, den Anrufoperator ohne Erfolg zu verwenden.
Ich testete beide Methoden in PS v5 und der erste hat nicht funktioniert, aber der zweite hat: './echoargs $ b.name, '" "''. Das Komma zwischen den Parametern schien in meinem Fall nicht notwendig zu sein. – hjoelr