代码之家  ›  专栏  ›  技术社区  ›  Eric

Powershell获取windows中显示的区分大小写的路径

  •  2
  • Eric  · 技术社区  · 7 年前

    我正在寻找一种方法来获取我的本地路径,该路径包括名称中使用的任何驼峰案例。主要原因是我可以使用相同的路径在windows wsl中进行调用。例如,在windows中,我可以将文件称为

    c:\FoO\bar.txt 
    c:\Foo\Bar.txt
    

    windows将显示为 c:\foo\bar.txt . 当我尝试使用bash进入WSL时,我需要知道实际路径,因为Linux是区分大小写的。

    我试过使用

    $PSScriptRoot
    Split-path C:\FoO\Bar.txt
    (get-Item c:\Foo\Bar.txt).FullName
    

    但它们只提供调用脚本的路径。
    如何获取windows操作系统中显示的路径? 我不能只调用所需文件的完整路径,因为我不能保证它的根目录。我也不想在找东西的时候浪费时间。

    3 回复  |  直到 7 年前
        1
  •  2
  •   Sambardo    7 年前

    你想看的是 Target 您从中取回的财产 Get-Item . Fullname 将返回您最初键入的内容,但是 目标 实际上是一个代码属性,似乎可以获取对象的原始路径。

    (get-Item c:\Foo\Bar.txt).Target
    
        2
  •  -2
  •   rhmccullough    7 年前

    使用Windows文件资源管理器查找目录,它会显示完整路径名。
    在WSL或PowerShell中查找目录,“pwd”或“echo$pwd”提供完整路径名。
    将目录添加到$HOME/中的路径。您不需要完整的路径名。

        3
  •  -3
  •   rhmccullough    7 年前

    我有一些自动化的方法。
    看见 http://ContextKnowledge.blog
    “适用于Windows 10+Cygwin+WSL/Ubuntu的myenv软件包”
    该包包括几个简短的shell脚本
    找到信息并记录在环境变量中。
    如果这些shell脚本不适用于您,请与我联系以了解更多详细信息
    我会想办法的。