如何在Powershell脚本中解析相对或绝对文件名输入参数的绝对路径?

尼尔佐

我正在创建一个脚本,该脚本生成一个输出文件,我希望用户指定其名称。名称可以作为相对或绝对路径输入。当相对时,相对于当前目录

给定这个伪代码...:

function global:FileProduce() {
   Param([Parameter] [String] $dest)
   $absoluteDest=(DoSomething $dest)
}

..从头开始运行时,c:\temp我希望以下输入产生以下输出($absoluteDest):

情况1:

Input:
$dest=foo.txt
Output:
c:\temp\foo.txt

情况2:

Input:
$dest=sub\bar.txt
Output:
c:\temp\sub\bar.txt

情况3:

Input:
$dest=c:\foo.txt
Output:
c:\foo.txt
  • 我已经尝试过,Resolve-Path但如果文件不存在,它将失败。
  • $PSScriptRoot 没有帮助,因为我希望路径相对于当前文件夹,而不是脚本的文件夹
  • Get-Location可以解决当前目录,但是我不知道输入路径是相对路径还是绝对路径,因此(Get-Location + $dest)绝对路径将失败。
行军

.NET的Path.Combine将实现以下目标:

[System.IO.Path]::Combine($pwd, $dest)

$pwd是一个自动变量,包含当前目录的完整路径)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章