My understanding is that PowerShell cmdlet only accept input through parameters and there are 2 ways to pass data down the pipeline: ByValue and ByProperty.
In the example below, I dont understand why it works.
Get-ChildItem .\ -Filter *.txt* | Copy-Item -Destination .\Wonderland\
Object type of Get-ChildItem is System.IO.FileInfo, there is no parameter of Copy-Item that acceps that type so ByValue does not work here.
I'm assuming the parameter -Path of Copy-Item will accept input from Get-ChildItem but there is no -Path property in Get-ChildItem. By this logic, it will not work.
Am i missing anything?