我想知道如何获取我正在运行或编写的脚本的位置。我们有一组.NET程序集放在与当前PowerShell脚本相同的目录中,我们希望从脚本中加载它们。现在我使用固定路径来定位程序集,但我们想从当前文件位置加载它们。
[System.Reflection.Assembly]::LoadFrom
("C:\Work\Scripts\Assemblies\DynamicOps.ManagementModel.Client.dll")
[System.Reflection.Assembly]::LoadFrom
("C:\Work\Scripts\Assemblies\DynamicOps.Repository.dll")
答案 0 :(得分:12)
$MyInvocation
包含一个对象,其中包含有关当前命令的信息,例如脚本,函数或脚本块。您可以使用对象中的信息,例如脚本的路径和文件名
($myinvocation.mycommand.path
)或函数名称($myinvocation.mycommand.name
)以标识当前命令。这对于查找正在运行的脚本的名称特别有用。您将获得about_Automatic_Variables自动变量的完整帮助:
get-help about_Automatic_Variables -full
(编辑)的
要获取当前目录,您已获得CmdLet Get-Location
答案 1 :(得分:2)
$MyInvocation.MyCommand.Path
也许?