如何解决Foreach /如果使用CSV文件
我想设置一个脚本以自动运行,该脚本将通过CSV文件读取,并在WAN1状态失败等情况下通知我们。
请参见下面的基本脚本:
“ $ merakicsv = Import-Csv'C:\ Python \ Scripts \ 2020-08-11.csv'
$ merakiselectedcsv = $ merakicsv |选择“网络”,“ WAN1状态”,“ WAN2状态”
$ merakiselectedcsv的输出
网络WAN1状态WAN2状态
NETWORK1失败未连接
NETWORK2 Active未连接
NETWORK3 Active Ready”
我不太清楚如何编写foreach来读取CSV的内容,我真的很想得到一些帮助/建议。
我们非常感谢您的帮助。
解决方法
Import-Csv 'C:\Python\Scripts\2020-08-11.csv' | Foreach-Object {
$_ # The current row deserialized into an object with properties
$_.Network # The current object's Network property value
}
使用foreach:
foreach ($row in (Import-Csv 'C:\Python\Scripts\2020-08-11.csv')) {
$row # The current row deserialized into an object with properties
$row.Network # The current object's Network property value
}
使用Where-Object进行过滤:
Import-Csv 'C:\Python\Scripts\2020-08-11.csv' |
Where-Object { $_.'WAN1 Status' -eq 'Failed' } | Foreach-Object {
$_ # Current row object that has WAN1 Status of Failed
}
使用if
条语句:
$merakicsv = Import-Csv 'C:\Python\Scripts\2020-08-11.csv'
foreach ($row in $merakicsv) {
if ($row.'WAN1 Status' -eq 'Active'){
"$($row.Network) is Active!"
} else {
"$($row.Network) is not Active!"
}
}
通常,我会在循环之前先过滤一个集合。这样可以最大程度地减少循环中的迭代次数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。