В PowerShell пайплайны позволяют передавать объекты из одного cmdlet в другой. Однако не все cmdlet могут принимать входные данные непосредственно из пайплайна в ожидаемом формате.
Оператор `New-Item` создает новый элемент (например, файл, директорию и т.д.), и для него параметры могут иметь разные входные типы. Параметр `-Path` ожидает указание пути для нового элемента, но сам оператор `New-Item` не принимает строки (например, "hello") через пайплайн.
В вашем примере, команда:
```powershell
echo "hello" | New-Item -ItemType Directory
```
не сработает так, как вы ожидаете, потому что `New-Item` не может получать путь из пайплайна. Вместо этого вы можете использовать `ForEach-Object`, чтобы передать строки в качестве параметра `-Path`:
```powershell
echo "C:\SomeDirectory" | ForEach-Object { New-Item -Path $_ -ItemType Directory }
```
Таким образом, `ForEach-Object` берет каждую строку, переданную через пайплайн, и создает новый элемент по указанному пути.