在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本。以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢?
很简单,通过内置的$MyInvocation变量:
$x = $MyInvocation.MyCommand.Definition
此时$x的值是当前运行中的脚本的绝对路径,再用Split-Path取它的父路径就可以了:
$x = Split-Path -Parent $MyInvocation.MyCommand.Definition
这样$x的值就是脚本所在的文件夹了……