You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中使用foreach循环获取XML文件内容?

解决PowerShell遍历XML文件内容的错误问题

我来帮你搞定这个问题~你遇到的错误是因为Select-Object -Property Name返回的是包含Name属性的对象,而不是单纯的文件名字符串。当你把这个对象传给Get-Content时,PowerShell会把对象转换成默认的字符串表示@{Name=<filename>.xml},自然找不到对应的路径啦。

下面给你几种正确的实现方式:

方法1:展开Name属性得到纯字符串数组

先把文件名提取成纯字符串,再循环读取内容:

$test = Get-ChildItem | Select-Object -ExpandProperty Name
foreach ($i in $test) { Get-Content $i }

-ExpandProperty会直接把Name属性的值提取出来,这样$test里存的就是每个文件的名称字符串,传给Get-Content就能正确识别路径了。

方法2:直接遍历文件对象(更推荐)

其实不用单独存变量,直接遍历Get-ChildItem返回的文件对象,用它的FullName属性(完整路径)来读取,这样即使不在当前工作目录也不会出错:

foreach ($file in Get-ChildItem) {
    Get-Content $file.FullName
}

方法3:更简洁的管道写法

用ForEach-Object直接通过管道处理,代码更紧凑:

Get-ChildItem | ForEach-Object { Get-Content $_.FullName }

如果只想处理XML文件,可以给Get-ChildItem加上过滤条件:

Get-ChildItem -Filter *.xml | ForEach-Object { Get-Content $_.FullName }

内容的提问来源于stack exchange,提问作者Manish Nagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:19:23