我想在PowerShell脚本中将路径转换为相对路径。如何使用PowerShell完成此操作?
例如:
Path to convert: c:\documents\mynicefiles\afile.txt
Reference path: c:\documents
Result: mynicefiles\afile.txt
和
Path to convert: c:\documents\myproject1\afile.txt
Reference path: c:\documents\myproject2
Result: ..\myproject1\afile.txt
发布于 2012-09-13 05:13:37
我发现了一些内置的东西,Resolve-Path
Resolve-Path -Relative
这将返回相对于当前位置的路径。一个简单的用法:
$root = "C:\Users\Dave\"
$current = "C:\Users\Dave\Documents\"
$tmp = Get-Location
Set-Location $root
Resolve-Path -relative $current
Set-Location $tmp
发布于 2020-10-26 23:54:35
使用内置System.IO.Path.GetRelativePath比公认的答案更简单:
[System.IO.Path]::GetRelativePath($relativeTo, $path)
发布于 2018-09-06 23:01:23
一种快速而简单的方法是:
$current -replace [regex]::Escape($root), '.'
或者,如果您想要实际当前位置的相对路径
$path -replace [regex]::Escape((pwd).Path), '.'
这假设您的所有路径都是有效的。
https://stackoverflow.com/questions/12396025
复制相似问题