PowerShell执行Get-Content读取文件时报错找不到@{FullName=D驱动器如何解决
错误原因
你代码中$latestReleaseNotesFile变量存储的是带有FullName、Name两个属性的PowerShell自定义对象,并非纯字符串格式的文件路径。当你直接将该对象传入Get-Content时,PowerShell会自动将对象转为字符串,得到的格式为@{FullName=D:\实际路径\文件名.txt;Name=文件名.txt},系统会把开头的@{FullName=D识别为不存在的盘符,因此抛出对应报错。
修复方案
有两种常用修复方式:
- 方式一:调用对象的
FullName属性获取纯路径后传入Get-Content
$releaseNote = Get-Content $latestReleaseNotesFile.FullName
- 方式二:获取文件时直接提取路径字符串,不需要保留对象结构,修改你原来获取最新文件的代码即可:
# 去掉多余的Select-Object FullName,Name,通过-ExpandProperty直接提取FullName的值 $latestReleaseNotesFile = Get-ChildItem -Path $releaseNotesPath -Filter *.txt | Sort-Object -Property Name | Select-Object -First 1 -ExpandProperty FullName # 后续直接调用即可 $releaseNote = Get-Content $latestReleaseNotesFile
内容的提问来源于stack exchange,提问作者Alex Gordon
相关产品推荐
相关产品推荐

