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

PowerShell将Get-Content结果存入变量无数据返回问题求助

问题分析与解决方案

我一眼就看出问题出在XML对象的输出方式和几个小语法细节上,咱们一步步拆解:

核心问题:XML对象不能直接用Write-Host输出

当你用[xml]$DataFileContent = Get-Content ...把文件内容强制转换成XML文档对象后,$DataFileContent本质是一个System.Xml.XmlDocument类型的对象。而Write-Host默认只会输出对象的类型名称,不会显示XML的实际内容——这就是你看不到有效输出的根本原因。

需要修正的语法细节

  1. UNC路径格式错误:你的Get-ChildItem命令里路径\$Server\C$\ *.data有两个问题:路径开头必须是双反斜杠\\,且通配符和路径之间不能有空格,正确写法是\\$Server\C$\*.data。
  2. 路径写法可简化:Microsoft.PowerShell.Core\FileSystem::\\$Server\C$\$DataFile可以直接简化为"\\$Server\C$\$DataFile",PowerShell会自动识别文件系统路径。

修正后的完整脚本

# 正确获取目标.data文件的文件名(确保路径格式正确)
$DataFile = Get-ChildItem "\\$Server\C$\*.data" -Name

# 读取文件内容并转换为XML对象
[xml]$DataFileContent = Get-Content "\\$Server\C$\$DataFile"

# 输出XML的完整文本内容
Write-Host $DataFileContent.OuterXml

# 或者更直观地查看XML结构,直接输出对象即可(PowerShell会自动格式化节点)
$DataFileContent

额外提示

如果你的目录下有多个.data文件,Get-ChildItem会返回所有匹配的文件名(此时$DataFile是数组),后续Get-Content会报错。建议加上-First 1指定获取第一个文件,或者循环处理多个文件:

Get-ChildItem "\\$Server\C$\*.data" | ForEach-Object {
    [xml]$xmlContent = Get-Content $_.FullName
    Write-Host "文件 $($_.Name) 的内容:"
    $xmlContent.OuterXml
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:10:19