When I run $PSScriptRoot
it returns null
. I am using PS version 4.
$val = Join-Path -Path $PSScriptRoot WebPlatformInstaller_amd64_en-US.msi
Error
Join-Path : Cannot bind argument to parameter 'Path' because it is an empty string.
PowerShell PSScriptRoot Empty PowerShell PSScriptRoot is empty if it is used outside of PowerShell script or caller is not script or command.
PSScriptRoot - Contains the full path to the script that invoked the current command. The value of this property is populated only when the caller is a script.
If using ISE use:
$psISE.CurrentFile.FullPath
When ISE is launched, $psISE is created and can be used to determine the current path of the ISE instance. This was introduced in version 3.0.
See ISE Object Model Hierarchy
If you wanted to get the path in either shell or ISE you could use something like this:
if ($psISE) { Split-Path -Path $psISE.CurrentFile.FullPath } else { $global:PSScriptRoot }
You have to make sure that this expression is in a saved .ps1 script.
This can happened in following cases:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With