Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$MyInvocation.MyCommand.Path returning NULL

Tags:

powershell

I have the following code as the beginning of a longer script:

$ScriptPath = Split-Path $MyInvocation.MyCommand.Path
& $ScriptPath\build_functions.ps1
& $ScriptPath\build_builddefs.ps1

The idea is to get the path of the script being run and use that path to call some supporting scripts. However when I went to test this out in isolation to make sure it could work (by highlighting that block and running just that code), I got the following error:

Split-Path: Cannot bind argument to parameter 'Path' because it is null.

Interestingly enough, when I run the entire script it seems to run these files separately. Is there something I'm missing about how the ISE handles running a selection rather than the full script? Does it not establish a file system context when you run a selection?

like image 720
Sean Long Avatar asked Sep 11 '13 13:09

Sean Long


1 Answers

$MyInvocation is an automatic variable populated at script run time, then if you execute $MyInvocation.MyCommand.Path in a powershell console or ISE isn't populated;

that's why in your test the $ScriptPath has no value ($null)

like image 106
CB. Avatar answered Oct 31 '22 16:10

CB.