【问题标题】:Getting resolved file path in Powershell在 Powershell 中获取解析的文件路径
【发布时间】:2014-07-28 09:41:07
【问题描述】:

我需要找到一个文件,该文件的路径中有一个文件夹,该文件夹的动态名称在我发布某些应用程序时会发生变化。 (它附加了一个版本号)。

C:\somefolder\application_1.0.5.0\myxmlfile.xml

$FilePath = "C:\somefolder\application*\myxmlfile.xml"

这很好用,但我正在更改 xml 并需要再次保存它。保存后它抱怨路径“*”中有非法字符。

[xml] $xml = Get-Content..
$xml.Save($FilePath) 

如何在$FilePath 中获取powershell 实际解析的路径,以便将其传递给xml 保存函数?

【问题讨论】:

    标签: powershell


    【解决方案1】:
    PS > $FilePath = 'C:\Window*\win.ini'
    
    PS > Convert-Path $FilePath
    C:\Windows\win.ini
    

    【讨论】:

    • 有趣。 convert-path 的帮助说不允许使用通配符。
    • @MikeShepard 如果您使用 LiteralPath 参数。这隐含地使用了Path 参数。
    • @MikeShepard 是的,但这里也说technet.microsoft.com/en-us/library/hh849858
    • 所以文档不止一处错误?
    【解决方案2】:

    Resolve-Path cmdlet 会将通配符转换为完整路径。或者你可以使用类似的东西:

    $filepattern = "C:\somefolder\application*\myxmlfile.xml"
    $filepath = gci $filepattern  | select -First 1 -ExpandProperty FullName
    

    【讨论】:

    • Get-ChildItem 的别名。它是 DIR 或 LS 的 PS 等价物
    猜你喜欢
    • 2012-09-30
    • 2012-10-19
    • 1970-01-01
    • 2016-12-10
    • 2010-09-28
    • 2018-09-11
    • 2018-08-29
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多