Комментарии 6
Намедни решил заценить этот powershell (не забавы ради, чтоб уйти от линукса в виртуалке и сохранить привычный тулчейн — VSCode, gcc, git, make, консоль) но чет очень непривычно — странный трейс, имена утилит, синтаксис скриптов… Очень не башеподобно и от этого жаль. И ещё, как вишенка на торте, есть глюк с написанием заглавных букв (как кириллицы так и латинских), легко гуглится, вроде есть решения. В общем первый раз комом, но для windows-профи наверно необходимая вещь.
Я человек простой: вижу статью, продвигающую PowerShell, — ставлю "+".
В блоке Process надо всегда заворачивать параметр, который может быть массивом и приходит из конвейера, в какой-нибудь foreach, так как если пользователь передаст его не из конвейера, а непосредственно как параметр функции, то process выполнится только один раз и в переменной с именем параметра будет массив.
function test
{
param(
[Parameter(ValueFromPipeline=$true)]
[string[]]
$Param1,
[string]$Param2
)
begin
{
Write-Host "Блок Begin"
Write-Host " Первый параметр (через pipeline):" $Param1
Write-Host " Второй параметр (аргумент функции):" $Param2
}
process {
Write-Host "Блок Process"
Write-Host " Первый параметр (через pipeline):" $Param1
Write-Host " Второй параметр (аргумент функции):" $Param2
}
end
{
Write-Host "Блок End"
Write-Host " Первый параметр (через pipeline):" $Param1
Write-Host " Второй параметр (аргумент функции):" $Param2
}
}
"один", "два", "три" | test -Param2 "четыре"
И далее ниже аналогично.
Что такое Windows PowerShell и с чем его едят? Часть 3: передача параметров в скрипты и функции, создание командлетов