大家好我是新的power shell,並試圖對每個循環有意義,但我不明白在下面的腳本中+ $是什麼意思,爲什麼它們一起使用如何理解powershell中的foreach循環
$names = "jones","mike","Ash"
foreach ($name in $names)
{
"$name = " + $name.length
}
大家好我是新的power shell,並試圖對每個循環有意義,但我不明白在下面的腳本中+ $是什麼意思,爲什麼它們一起使用如何理解powershell中的foreach循環
$names = "jones","mike","Ash"
foreach ($name in $names)
{
"$name = " + $name.length
}
首先,它是PowerShell的。沒有空間,並觀察字母的大小寫。
二,RTFM。 Technet上有很多文檔。利用它。有內置的幫助。閱讀Help about_*
的話題。
回到你的問題,foreach
循環迭代所有集合。在你的例子中,$names
是一串字符串。數組是一個集合。
在您的示例中,當foreach
循環遍歷集合時,它將集合中的每個項目複製到名爲$name
的另一個變量。
foreach ($name in $names) {}
裏面的foreach
循環,您可以使用$name
變量來檢索存儲在該項目的價值。所以,下面的代碼將打印集合中的值。
foreach ($name in $names) {
$name
}
$name
是一個字符串。所以,$name.Length
給了我們該字符串的長度。
+
是算術運算符。它可以用來連接字符串。在這種情況下,$name + $name.length
將導致值附加長度。
下面是修改示例輸出:
$names = "jones","mike","Ash"
foreach ($name in $names)
{
$name + $name.Length
}
jones5
mike4
Ash3
最後,來到你的例子和輸出:
$names = "jones","mike","Ash"
foreach ($name in $names)
{
"$name = " + $name.Length
}
jones = 5
mike = 4
Ash = 3
我希望這提供了什麼樣的例子做一些解釋你。
非常感謝你。 – user3770612
讓我們來看看一步一步:
$names = "jones","mike","Ash"
這聲明數組有三個項目,並將其存儲在變量$名稱。
foreach ($name in $names) { }
這是一個遍歷$ names數組變量中所有項的循環。每個項目都被「複製」到「$ name」變量中,所以當您使用$name
時,您正在使用循環中的當前項目。
"$name = " + $name.length
這將輸出$ name變量的內容和由$ name表示的對象的「length」屬性。如果你記得,我們宣佈一個字符串項目的數組,換句話說字符串對象。字符串對象具有屬性和方法,其中一個屬性是指示字符串有多長的length
屬性。
雖然這個符號有點奇怪。在PowerShell中,嵌入到字符串中的變量(例如"start $name end"
)將被替換爲字符串值,所以"start $name end"
將變爲start jones end
,但不能只寫"start $name.length end"
,因此在本例中,作者使用+來連接( append)這兩個字符串,另一種解決方案是"$name = $($name.length))"
:這樣一個單獨的字符串文字將同時包含字符串和它的長度屬性
我剛從谷歌複製了這個腳本,但試圖理解for循環。什麼是每個循環的$名稱,我很困惑,因爲我們聲明的變量是$ names – user3770612