Forvirrende evaluering av $ args i Powershell

stemmer
3

The $ args variable skal per definisjon inneholde alle argumenter som sendes til et skript funksjon. Men hvis jeg bygge en rørledning inne i min funksjon, evaluerer $ args variable til null. Noen vet hvorfor?

Se dette eksempelet:

function test { 1..3 | % { echo args inside pipeline: $args } ; echo args outside pipeline: $args }

Dette er utgangssignalet, når de passerer parameter Hallo:

PS> test hello
args inside pipeline:
args inside pipeline:
args inside pipeline:
args outside pipeline: hello

Er det en spesiell grunn til dette? Jeg vet hvordan de skal løse dette, men jeg lurer på om anonye der ute kan forklare årsaken til dette.

Publisert på 16/01/2009 klokken 10:14
kilden bruker
På andre språk...                            


1 svar

stemmer
5

Rør bruke $ input. Prøv dette:

function test { 1..3 | % { echo "args inside pipeline: $input" } ; echo "args outside pipeline: $args" }
Svarte 16/01/2009 kl. 16:14
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more