是否有可能獲得$ _的數量。在foreach管道中變量?powershell,foreach,獲取行數
例子:
$a = 1..9
$a | foreach {if ($_ -eq 5) { "show the line number of $_"}}
我希望你知道我的意思。
謝謝!
是否有可能獲得$ _的數量。在foreach管道中變量?powershell,foreach,獲取行數
例子:
$a = 1..9
$a | foreach {if ($_ -eq 5) { "show the line number of $_"}}
我希望你知道我的意思。
謝謝!
Array.IndexOf Method(.NET
框架)
搜索指定的對象,並返回其第一 出現的索引在一個一維陣列中或在範圍中的 數組中的元素。
例子:
PS D:\PShell> $a = "aa","bb","cc","dd","ee"
PS D:\PShell> $a.IndexOf('cc')
2
PS D:\PShell> $a=101..109
PS D:\PShell> $a.IndexOf(105)
4
PS D:\PShell> $a |foreach {if ($_ -eq 105) {"$($a.IndexOf($_)) is the line number of $_"}}
4 is the line number of 105
PS D:\PShell>
謝謝,IndexOf是我需要的! 也許我的英語應該更好地描述我的問題更清楚。 ;-) – Stoffi
如果你試圖讓腳本文件名和行號,你可以使用$ MyInvocation變量的函數調用來獲取在腳本文件的行號該函數被調用。
保存在PS1腳本文件如下:
function Get-CurrentLineNumber {
return $MyInvocation.ScriptLineNumber
}
function Get-CurrentFileName {
return $MyInvocation.ScriptName
}
1..9 | % {
if ($_ -eq 5) {
"{0}:{1} value is {2}" -f (Get-CurrentFileName), (Get-CurrentLineNumber), $_
}
}
腳本運行之後,你應該得到類似以下的輸出:
// C:\用戶\鮑勃\桌面\測試名爲.ps1:11值是5
從poshoholic的博客在這裏無恥借: https://poshoholic.com/2009/01/19/powershell-quick-tip-how-to-retrieve-the-current-line-number-and-file-name-in-your-powershell-script/
你試圖讓'$ _'值,鄰你試圖獲得'$ _'的數組索引嗎?你的示例代碼中顯示的值很好。 – TheMadTechnician