Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
128 views
in Technique[技术] by (71.8m points)

Difference between ForEach and ForEach-Object in powershell

Is there any difference between ForEach and ForEach-Object ?

I have a small code like this, works fine

$txt = Get-Content 'C:emp00.txt'
$result = foreach ($line in $txt) {$line.replace(".ini","")}
$result | out-file 'c:emp01.txt'

But if i use 'ForEach-Object', I got errors....

$txt = Get-Content 'C:emp00.txt'
$result = foreach-object ($line in $txt) {$line.replace(".ini","")}
$result | out-file 'c:emp01.txt'

Why ? and how to output the loop results by using ForEach-Object

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

foreach is an alias of ForEach-Object but it appears to also be a keyword (which is confusing).

The foreach ($<item> in $<collection>){<statement list>} syntax you are using is help about_foreach.

The foreach as ForEach-Object alias is help ForEach-Object.

The keyword foreach operates over each $<item> in the $<collection> as given in the () bit.

The alias foreach/function ForEach-Object operates over each item of the collection it receives as input.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...