PowerShell筛选XML含thr_的行并写入文件问题求助
解决PowerShell重定向Write-Host输出为空的问题
问题出在Write-Host上——这个命令是专门给控制台窗口打印内容的,它的输出不会进入PowerShell的管道流,所以重定向符号>>根本抓不到它的内容,自然生成空白文件。
给你两个简单的解决办法:
- 直接用
Where-Object筛选,省略多余的Write-Host:
嫌长的话可以用别名简化:Get-Content D:\Test.xml | Where-Object { $_ -match "thr_" } >> D:\Out.txtgc D:\Test.xml | ? { $_ -match "thr_" } >> D:\Out.txt - 要是坚持用
ForEach-Object循环,直接输出匹配的行就行,别用Write-Host:gc D:\Test.xml | % { if($_ -match "thr_") { $_ } } >> D:\Out.txt
如果想覆盖目标文件而不是追加内容,把>>换成>就行。
内容的提问来源于stack exchange,提问作者chimcen
相关产品推荐
相关产品推荐

