Powershell 选择Xml返回文件名

Powershell 选择Xml返回文件名,powershell,select-xml,Powershell,Select Xml,当使用Select Xml解析我的*.csproj时,除了从预期的输出中,我还得到一个concat参数 这是怎么回事 $version = Select-Xml -Path $projectFilePath -XPath "/Project/PropertyGroup/Version" Write-Host $version Start-Sleep -Seconds 5 EXIT 这是回报 1.0.1:D:\somepath\someproject.csproj 而不是 1.0.1 cspro

当使用Select Xml解析我的*.csproj时,除了从预期的输出中,我还得到一个concat参数

这是怎么回事

$version = Select-Xml -Path $projectFilePath -XPath "/Project/PropertyGroup/Version"
Write-Host $version
Start-Sleep -Seconds 5
EXIT
这是回报

1.0.1:D:\somepath\someproject.csproj

而不是

1.0.1

csproj的片段

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard1.3</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
        <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <Version>1.0.1</Version>
    </PropertyGroup>
</Project>

netstandard1.3
假的
1.0.0.0
1.0.1

谢谢你的片段,现在我可以自己试试了

这确实有效:

$version = Get-Content -Path $projectFilePath -Raw | Select-Xml -XPath "/Project/PropertyGroup/Version"
Write-Host $version

谢谢你的片段,现在我可以自己试试了

这确实有效:

$version = Get-Content -Path $projectFilePath -Raw | Select-Xml -XPath "/Project/PropertyGroup/Version"
Write-Host $version

您也可以这样做:

[xml]$x = get-content D:\somepath\someproject.csproj 
$x.project.propertygroup.version

您也可以这样做:

[xml]$x = get-content D:\somepath\someproject.csproj 
$x.project.propertygroup.version

仍然有点惊讶为什么原始代码会产生这样的结果,但是还好。。。至少这个works@Dbl的确对我来说好像是个虫子。还可以使用
LiteralPath
将文件名附加到Xpath查询的所需结果中..仍然有点奇怪为什么原始代码会产生这样的结果,但还好。。。至少这个works@Dbl的确对我来说好像是个虫子。还可以使用
LiteralPath
将文件名追加到Xpath查询的所需结果中。。