Антон Анонимов ответил по существу, а я напишу в общем. но на вашем примере
PS> Get-Help New-Item -Parameter Name
-Name <System.String[]>
....
Принимать входные данные конвейера? True (ByPropertyName)
Вот пункт
Принимать входные данные конвейера - ответ на ваш вопрос
Вот тут, например
PS> Get-Help Set-Location -Parameter Path
Принимать входные данные конвейера? True (ByPropertyName, ByValue)
ByValue - значит принимает напрямую
Вы могли бы написать
echo "hello" | Set-Location
и попасть в папочку
А
ByPropertyName означает, что вы можете получить это значение только из свойства входящего объекта. то есть, например, вот так
[PSCustomObject]@{ Name = 'hello' } | New-Item
А можно, например вот так
# попытка 1 как выше
mkdir d:\test1
cd d:\test1
'z','x','c' | ForEach-Object { New-Item -ItemType Directory -Name $_ }
# попытка 2, сдублируем те же папочки в другом месте
mkdir d:\test2
cd d:\test2
Get-ChildItem d:\test1 | New-Item -ItemType Directory
btw, для
New-Item
можно использовать как
-Path
, так и
-Name
You can specify the name of the new item in the Name or Path parameter value, and you can specify the path of the new item in Name or Path value. Items names passed using the Name parameter are created relative to the value of the Path parameter.