Powershell неправильно обрабатывает строковые параметры - PullRequest
2 голосов
/ 08 ноября 2011

Я пишу простой скрипт powershell, и я не понимаю его поведение.Вот код.

Function print($first,$second){
Write-Host "$first"
}

$one="Dog"
$two="Cat"

print($one,$two)

А вот и вывод.

Dog Cat

Я не знаю, почему в нем печатаются оба параметра, а не тот, который я просил.Я нашел похожий вопрос, который говорит, что ответом на решение является запись

print $one $two

Но я не знаю почему.Другой вопрос: Как передать несколько строковых параметров в сценарий PowerShell?

Может кто-нибудь осветить эту тему?

1 Ответ

6 голосов
/ 08 ноября 2011

Как вы упомянули, вы должны вызывать его следующим образом:

print $one $two

В Powershell аргументы функций разделяются пробелом, а не запятыми и не заключаются в скобки (хотя аргументы метода есть)

То, как вы звонили, print($one,$two), это похоже на вызов print с одним аргументом, который является массивом - ($one,$two).Поэтому, когда вы write-host $first, вы повторяете массив и, следовательно, видите их обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...