簡體   English   中英

Powershell ForEach 和 ForEach-Object 與 Select

[英]Powershell ForEach & ForEach-Object with Select

我試圖使用 ForEach 和 ForEach-Object 遍歷 $s4a 中的文件名列表並顯示 output。 我發現生成 output 的唯一兩種方法是:

  • ForEach ($name in $s4a) {$name.Name}
  • $s4a| ForEach-對象 {$_ | Select 名稱}

有人可以讓我知道為什么下面的沒有產生任何東西,而上面的兩個工作嗎?

  • ForEach ($name in $s4a) {Select Name} #無結果
  • ForEach ($name in $s4a) {Select $name.Name} #No 結果
  • $s4a| ForEach-Object {Select$_.Name} #無結果
  • $s4a| ForEach-Object {Select Name} #無結果

非常感謝

本質上,這是因為您的語法對於每個不起作用的語句都不正確。 在每個非工作示例中,您都沒有正確引用您希望查看“名稱”屬性的 object。

Select-Object 通常在從管道接受輸入 object 時使用,但也可以使用 -InputObject 參數識別 object。

通過 $object.propertyName 調用 object 屬性時,您不需要 select 語句。

而不是ForEach ($name in $s4a) {Select Name} ,試試這個: ForEach ($name in $s4a) {$name | Select Name} ForEach ($name in $s4a) {$name | Select Name}

代替ForEach ($name in $s4a) {Select $name.Name} ,試試這個: ForEach ($name in $s4a) {$name.Name}

而不是$s4a| ForEach-Object {Select$_.Name} $s4a| ForEach-Object {Select$_.Name} ,試試這個: $s4a| ForEach-Object {$_.Name} $s4a| ForEach-Object {$_.Name}

而不是$s4a| ForEach-Object {Select Name} $s4a| ForEach-Object {Select Name} ,試試這個: $s4a| ForEach-Object {$_ | Select Name} $s4a| ForEach-Object {$_ | Select Name}

另外,請注意,每種方法返回信息的方式有所不同。 Select 語句返回僅包含您選擇的屬性的原始對象的修改版本。 而直接調用屬性僅返回該屬性的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM