在運行腳本的時候,有時候需要通過腳本文件所在位置的相對路徑來做一些事,比如執行另一個腳本。以前在CMD時代,可以通過%~dp0來獲取腳本所在的文件夾,那在PowerShell中要怎么做呢?
很簡單,通過內置的$MyInvocation變量:
$x = $MyInvocation.MyCommand.Definition
此時$x的值是當前運行中的腳本的絕對路徑,再用Split-Path取它的父路徑就可以了:
$x = Split-Path -Parent $MyInvocation.MyCommand.Definition
這樣$x的值就是腳本所在的文件夾了……