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

如何解析powershell脚本中相对或绝对文件名输入参数的绝对路径?,powershell,Powershell,我正在创建一个脚本,生成一个输出文件,希望用户指定该文件的名称。名称可以作为相对路径或绝对路径输入。相对时,它与当前目录相对 给定此伪代码…: function global:FileProduce() { Param([Parameter] [String] $dest) $absoluteDest=(DoSomething $dest) } …从c:\temp运行时,我希望以下输入产生以下输出($absoluteDest): 案例1: Input: $dest=foo.txt

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

给定此伪代码…:

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
  • 我已经尝试了
    解析路径
    ,但是如果文件不存在,它就会失败
  • $PSScriptRoot
    没有帮助,因为我希望路径相对于当前文件夹,而不是脚本的文件夹
  • Get Location
    可以解析当前目录,但我不知道输入路径是相对路径还是绝对路径,因此
    (Get Location+$dest)
    对于绝对路径将失败
    • .NET将实现以下目标:

      [System.IO.Path]::合并($pwd,$dest)
      
      $pwd
      是包含当前目录完整路径的