【发布时间】:2020-12-01 07:37:41
【问题描述】:
考虑以下情况:我有一个参数或配置变量,用于设置脚本的输出目录。显然,这个参数也应该可以是绝对的:
RepoBackup.ps1 -OutputDirectory .\out
RepoBackup.ps1 -OutputDirectory D:\backup
在脚本中,我使用(Get-Item -Path './').FullName 结合Join-Path 来确定我的输出目录的绝对路径,因为我可能需要使用Set-Location 来更改当前目录——这使得使用相对路径变得复杂.
但是:
Join-Path C:\code\ .\out # => C:\code\.\out (which is exactly what i need)
Join-Path C:\code\ D:\ # => C:\code\D:\ (which is not only not what i need, but invalid)
我考虑使用Resolve-Path 并执行Resolve-Path D:\backup 之类的操作,但如果目录不存在(尚不存在),则会产生无法找到路径的错误。
那么,我怎样才能获得我的$OutputDirectory 的绝对路径,同时接受绝对和相对输入,以及尚不存在的路径?
【问题讨论】:
-
提示:
[IO.Path]::IsPathRooted()判断路径是根路径还是相对路径。
标签: powershell path