This should be a simple task, but I have seen several attempts on how to get the path to the directory where the executed cmdlet is located with mixed success. For instance, when I execute C:empmyscriptsmycmdlet.ps1
which has a settings file at C:empmyscriptssettings.xml
I would like to be able to store C:empmyscripts
in a variable within mycmdlet.ps1
.
This is one solution which works (although a bit cumbersome):
$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$settingspath = $directorypath + 'settings.xml'
Another one suggested this solution which only works on our test environment:
$settingspath = '.settings.xml'
I like the latter approach a lot and prefer it to having to parse the filepath as a parameter each time, but I can't get it to work on my development environment. What should I to do? Does it have something to do with how PowerShell is configured?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…