首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PowerShell中将绝对路径转换为相对路径?

如何在PowerShell中将绝对路径转换为相对路径?
EN

Stack Overflow用户
提问于 2012-09-13 04:51:06
回答 6查看 26.1K关注 0票数 39

我想在PowerShell脚本中将路径转换为相对路径。如何使用PowerShell完成此操作?

例如:

代码语言:javascript
复制
Path to convert: c:\documents\mynicefiles\afile.txt
Reference path:  c:\documents
Result:          mynicefiles\afile.txt

代码语言:javascript
复制
Path to convert: c:\documents\myproject1\afile.txt
Reference path:  c:\documents\myproject2
Result:          ..\myproject1\afile.txt
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-13 05:13:37

我发现了一些内置的东西,Resolve-Path

代码语言:javascript
复制
Resolve-Path -Relative

这将返回相对于当前位置的路径。一个简单的用法:

代码语言:javascript
复制
$root = "C:\Users\Dave\"
$current = "C:\Users\Dave\Documents\"
$tmp = Get-Location
Set-Location $root
Resolve-Path -relative $current
Set-Location $tmp
票数 67
EN

Stack Overflow用户

发布于 2020-10-26 23:54:35

使用内置System.IO.Path.GetRelativePath比公认的答案更简单:

代码语言:javascript
复制
[System.IO.Path]::GetRelativePath($relativeTo, $path)
票数 9
EN

Stack Overflow用户

发布于 2018-09-06 23:01:23

一种快速而简单的方法是:

代码语言:javascript
复制
$current -replace [regex]::Escape($root), '.'

或者,如果您想要实际当前位置的相对路径

代码语言:javascript
复制
$path -replace [regex]::Escape((pwd).Path), '.'

这假设您的所有路径都是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12396025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档