powershell - 无法使用 continue 语句跳过 foreach-object 中的第一次迭代。请建议
问题描述
嗨,我有 powershell,我正在使用 foreach 对象,并且希望始终跳过第一次迭代。我也在使用 continue 语句。但是 continue 的当前行为就像 break 一样。请建议我在这里做错了什么。
下面是示例代码。
$xmlfile = 'D:\testdirecotry\sample.xml'
[xml]$xmlcontent = (Get-Content $xmlfile)
$folderprefix = 'plm_z'
$regex = '<!--__AMAZONSITE id="(.+?)" instance="(.+?)"__-->'
$i=0
(Get-Content $xmlfile) | select-string -Pattern $regex | ForEach-Object {
write-host "Test Iterartion"
if($i -eq 0)
{
write-host "entering if loop"
write-host $i
$i++
write-host $i
continue
}
else
{
write-host "entering else loop"
write-host $_
$pscustomobject=@(
# write-host $_
$id = $_.Matches.Groups[1].Value
$instance = $_.Matches.Groups[2].Value
write-host "Do Something"
)
}
}
解决方案
跳过第一个对象的更简单方法可能是Select-Object
在管道中使用:
Get-Content $xmlfile |
Select-string -Pattern $regex |
Select-Object -Skip 1 |
ForEach-Object {
...
推荐阅读
- c - 警告:初始化器 [-Wmissing-braces] 周围缺少大括号(在宏中)
- android - 有时 Apk 不安装最新代码而是重新安装相同的 apk 修复问题
- reactjs - 为什么在组件安装时会触发交叉点观察器?
- pycharm - PyCharm 2019.2.1 PEP8 行长度检查工作错误
- android - 如何使用 Glide 播放 gif
- javascript - 玩 Babel-jest 不编译父文件夹中的 js
- java - 如何在 Reactor Netty 中处理 io.netty.channel.ConnectTimeoutException
- linux - 如何在没有日期和时间的情况下重命名文件
- selenium - 如何在 Jenkins 工作中使用 Selenium WebDriver?
- react-native - undefined 不是一个对象(评估 '(0 _reactnavigation.DrawerNavigator)')