Есть ли ошибка в PowerShell 4 (и менее) при использовании оператора вызова с двойными кавычками? - PullRequest
0 голосов
/ 26 сентября 2019

Я заметил разницу между PowerShell 4 и PowerShell 5.

Давайте рассмотрим следующий скрипт PowerShell:

. SomeProgram.exe "something=""Hello World!"""

Аргументы, видимые 'SomeProgram.exe' с PowerShell 4 (а может и меньше) :

  • arg 0: что-то = Hello
  • arg 1: World!

Аргументы видят«SomeProgram.exe» с PowerShell 5 :

  • arg 0: что-то = Hello World!

Обратите внимание, чтоэта разница возникает только тогда, когда аргумент содержит некоторый текст перед двойной кавычкой:

  • "sometext" "Hello World!" "" ? KO

но

  • "" "Hello World!" "" ? OK

Заключение:

В PowerShell 4 возникает ошибка при анализе аргумента в виде:

ATextWithoutSpace"A Text with space"

PowerShell 5 отбрасывает двойные кавычки и рассматривает всю строку как однуаргументd be).

PowerShell 4 разбивает двойные кавычки, но приводит несколько аргументов, разделяя строку пробелами.

Есть ли способ получить такое же поведение между PowerShell 4 и PowerShell 4?

...