В дополнение к полезный ответ Мьолинора :
tl; др
$isDotSourced = $MyInvocation.InvocationName -eq '.' -or $MyInvocation.Line -eq ''
В то время как $MyInvocation.InvocationName -eq '.'
в основном сообщает, что данный сценарий получен из точек, есть одно исключение :
[ Применяется, по крайней мере, PowerShell v3 ]
При запуске сценария из кода Visual Studio или PowerShell ISE с Debug > Run/Continue
( F5 ) он неявно получен,все же $MyInvocation.InvocationName
содержит полное имя файла сценария, а не .
Однако вы можете обнаружить этот случай, проверив, является ли $MyInvocation.Line
пустым .