Kto rozumie pipe'y w PowerShellu?

Kto rozumie pipe'y w PowerShellu?
Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0

Czy ktokolwiek jest w stanie powiedzieć czemu wywołanie Measure-Object na stringu daje poprawne wartości:

Kopiuj
PS C:\Users\Riddle\PhpstormProjects> "welcome home lorem ipsum" | Measure-Object -Word -Line

Lines Words Characters Property
----- ----- ---------- --------
    1     4

Ale wsadzenie tego samego stringa do array'a i zrobienie na nim ForEach-Object już nie?

Kopiuj
PS C:\Users\Riddle\PhpstormProjects\> @("welcome home lorem ipsum", "ddolor sit amet") | ForEach-Object {Measure-Object -Word -Line}

Lines Words Characters Property
----- ----- ---------- --------
    0     0
    0     0

Czy to jakaś specyfika Measure-Object? Czy może pipe'y w PowerShellu działają inaczej niż je rozumiem, np jakoś rozpakowują array'e czy coś?

ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
4

W tej pętli nie odwołujesz się do obecnego wyniku iteracji. To powinno zadziałać:

Kopiuj
 @("welcome home lorem ipsum", "ddolor sit amet") | ForEach-Object {$_ | Measure-Object -Word -Line}
Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1
ledi12 napisał(a):

W tej pętli nie odwołujesz się do obecnego wyniku iteracji. To powinno zadziałać:

Kopiuj
 @("welcome home lorem ipsum", "ddolor sit amet") | ForEach-Object {$_ | Measure-Object -Word -Line}

Ale amatorski błąd zrobiłem. Dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.