Author Posts

November 21, 2014 at 5:23 am

I'm having an issue where my script will randomly start registering $PSScriptroot as the C:\ drive on my computer. It will work many times as intended, and sometime later seemingly at random it errors out with "cannot find the specified file."

I am opening the script from C:\Scripts\GETSDC\
and it returns:

Get-Content : Cannot find path 'C:\Targets.txt' because it does not exist.

The command that's throwing the error first in my script is get-content:

$Targets = Get-Content $PSScriptRoot\Targets.txt

Any help would be appreciated. Thanks!

November 21, 2014 at 8:12 am

Are you running your script from PowerShell -Version 2.0 when this happens? $PSScriptRoot wasn't added until PowerShell v3.

November 21, 2014 at 9:52 am

I've yet to see $PSScriptRoot not return the proper directory. At minimum, you could test with the $MyInvocation automatic variable and see if you end up with the same error or not.

Get-Content "$(Split-Path $MyInvocation.InvocationName)\Targets.txt"

November 22, 2014 at 3:55 am

This is where I'm running my script from. Note the target file.

This is the error it's giving me and note that I'm running version 4.

Edit: images weren't working, attached them to the post.
Edit2: Please note that I'm running a script selection, and getting the same error when I run my whole script. I'm not just trying to use $PSScriptroot without a script.

November 22, 2014 at 4:49 am

You can't use $PSScriptRoot at the command line. That variable is only set when you're executing a ps1 or psm1 file.

November 23, 2014 at 10:44 pm

[blockquote]Edit2: Please note that I'm running a script selection, and getting the same error when I run my whole script. I'm not just trying to use $PSScriptroot without a script.[/blockquote]

I added in this edit when I replied, you must not have read this line.