在PowerShell中,有時候,我們需要把當前的相對路徑解析為絕對路徑,比如"./test.txt",我們想知道它的絕對路徑的話,我們有兩種方法可以實現(xiàn)。
1、有一個cmd-let,它叫Resolve-Path。
語法如下:
復制代碼 代碼如下:
Resolve-Path <相對路徑>
如果指定的相對路徑的文件或文件夾,不存在,則將提示如下:
復制代碼 代碼如下:
PS C:/Users/zhanghong> Resolve-Path ./test.txt
Resolve-Path : 找不到路徑“C:/Users/zhanghong/test.txt”,因為該路徑不存在。
所在位置 行:1 字符: 13
復制代碼 代碼如下:
+ Resolve-Path <<<< ./test.txt
+ CategoryInfo : ObjectNotFound: (C:/Users/zhanghong/test.txt:Str
ing) [Resolve-Path], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.Resol
vePathCommand
如果位置存在,則提示找到的路徑:
復制代碼 代碼如下:
PS C:/Users/zhanghong> Resolve-Path ./music
Path
----
C:/Users/zhanghong/music
2、使用$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath方法
這個方法的好處是,不管這個相對路徑的文件或文件夾存不存在,都可以順利的它解析為絕對路徑。
舉例如下:
復制代碼 代碼如下:
PS C:/Users/zhanghong> $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath('./file.txt')
C:/Users/zhanghong/file.txt
實際上,小編的這個C:/Users/zhanghong/file.txt文件是不存在的。