我有一个文件,基本上包含以下内容:
<INCOND NAME="DWH_YDWB-Start" ODATE="STAT" AND_OR="AND" />
<INCOND NAME="BBYSICH01.NR" ODATE="ODAT" AND_OR="AND" />
<INCOND NAME="YDWB_AB-Start" ODATE="STAT" AND_OR="AND" />
<ON CODE="NOTOK" STMT="*">
<DOSYSOUT OPTION="Copy"
PAR="\\$CTMSERVER$\Sysout\%%ODATE._%%JOBNAME._#%%RUNCOUNT..txt" />
</ON>
我只想列出所有以BBY开头的INCOND的值-就是“ BBYSICH01.NR”
所以我开始:
get-content 'C:\Temp\test.xml' -ReadCount 1000 |
foreach { $_ -match 'INCOND NAME=\"BBY' }
确实列出了我想要的所有行,但是我只需要列出值“ BBYSICH01.NR”,而不是整个行,此时我完全失败了。尝试了不同的方法,但总是以灾难告终。
有什么简单的方法可以提取此值“ BBYSICH01.NR”?
在此先感谢Stefan
使用Select-String cmdlet并使用正则表达式提取文本,如下所示:
Select-String yourfile.txt -Pattern '(?<=<INCOND NAME=")BBY\w+\.\w+' | Select -ExpandProperty Matches | Select -ExpandProperty Value
应该比使用Get-Content快很多
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句