【问题标题】:Get relative path of files in sub-folders from the current directory从当前目录获取子文件夹中文件的相对路径
【发布时间】:2012-06-13 21:56:52
【问题描述】:

是否有任何直接的方法(通过使用 cmdlet 或 .NET 类)仅从给定路径获取子文件夹中文件的相对路径?

例如,当前文件夹是C:\MyScript,并且有一个名为Data 的子文件夹带有一个文件Test.txt,所以我希望看到Data\Test.txt 而不是C:\MyScript\Data\Test.txt

【问题讨论】:

标签: powershell powershell-2.0 powershell-ise


【解决方案1】:

Resolve-Path cmdlet 有一个-Relative 参数,该参数将返回相对于当前目录的路径:

Set-Location C:\MyScript
$relativePath = Get-Item Data\Test.txt | Resolve-Path -Relative

【讨论】:

  • 是否可以定义另一个基本目录而不是当前目录?
  • @VinyJones 我还没有找到方法,但我使用 Push-Location 和 Pop-Location 作为解决方法,将当前目录临时设置为另一个基本目录,以便获取相对于该目录的路径目录。有点笨重,但对我有用。
  • @VinyJones 是的,如果使用 .net core/.net 标准,您可以使用 .net 方法:[System.IO.Path]::GetRelativePath('c:\temp', 'c:\windows')docs.microsoft.com/en-us/dotnet/api/…。对于 .net 框架,您需要自行开发:请参阅 stackoverflow.com/questions/275689/…
【解决方案2】:

如果目录不存在,或者基目录应该与当​​前工作目录不同,则有一个 .NET 方法[IO.Path]::GetRelativePath(String from, String to)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多