我目前正在访问API并解析XML表以从3000多个系统中获取计算机ID。我得到ID并将它们存储在var $计算机中,我需要最后一个数字 ONLY 所以我可以使用开关将它们放入正确的组中。这就是我所拥有的;
foreach($ID in $Computers){
Switch ($ID){
0{write-host "0"}
1{write-host "1"}
2{write-host "2"}
3{write-host "3"}
4{write-host "4"}
5{write-host "5"}
6{write-host "6"}
7{write-host "7"}
8{write-host "8"}
9{write-host "9"}
}
}
由于隐私(我使用公司特定的URL),我在{}中编辑了实际命令。 ID编号的格式如“1”或“11”一直到“1111”。基本上,一行数字,最多4个数字。所有随机,并没有看似特别的顺序。我一直在谷歌搜索这几个小时,并且无法想出如何让它从ID中获取最后一个数字。任何帮助都会非常感激。
答案 0 :(得分:0)
简单回答:[-1]
从字符串中获取最后一个字符。
$computers = '111', '23', '1567'
foreach ($ID in $computers) {
switch ($ID[-1]) {
0 { write-host -ForegroundColor Cyan "0" }
1 { write-host -ForegroundColor Cyan "1" }
2 { write-host -ForegroundColor Cyan "2" }
3 { write-host -ForegroundColor Cyan "3" }
4 { write-host -ForegroundColor Cyan "4" }
5 { write-host -ForegroundColor Cyan "5" }
6 { write-host -ForegroundColor Cyan "6" }
7 { write-host -ForegroundColor Cyan "7" }
8 { write-host -ForegroundColor Cyan "8" }
9 { write-host -ForegroundColor Cyan "9" }
}
}
要么你花了几个小时谷歌搜索并没有找到 - > 你在一个月的午餐类型书或教程中迫切需要一个PowerShell。
或者,你有一些奇怪的格式ID。正则表达式很有趣,另一种方法可能是:
$computers = '111', '23', '1567'
switch -regex ($computers) {
'.*0$' { write-host -ForegroundColor Cyan "0" }
'.*1$' { write-host -ForegroundColor Cyan "1" }
'.*2$' { write-host -ForegroundColor Cyan "2" }
'.*3$' { write-host -ForegroundColor Cyan "3" }
'.*4$' { write-host -ForegroundColor Cyan "4" }
'.*5$' { write-host -ForegroundColor Cyan "5" }
'.*6$' { write-host -ForegroundColor Cyan "6" }
'.*7$' { write-host -ForegroundColor Cyan "7" }
'.*8$' { write-host -ForegroundColor Cyan "8" }
'.*9$' { write-host -ForegroundColor Cyan "9" }
}
示例输出:
Switch语句将隐式循环遍历数组,调整regex以适合ID格式。
答案 1 :(得分:0)
根据埃里斯的评论,这对我有用。我没有提及并理解自己的问题是,我存储在$ ID var中的XML并没有我需要的数据。我需要将其解析为$ ID.id以从XML获取ID元素。所以我的每个人都很糟糕!!
foreach($ID in $Computers){
$Lastdigit = $ID.id % 10
Switch ($Lastdigit){
0{write-host "0"}
1{write-host "1"}
2{write-host "2"}
3{write-host "3"}
4{write-host "4"}
5{write-host "5"}
6{write-host "6"}
7{write-host "7"}
8{write-host "8"}
9{write-host "9"}
}