Test-Path fails to return $True on a file that exists

powershell, powershell-2.0, powershell-ise

Solution

Try using the -LiteralPath parameter:

Test-Path -LiteralPath 'C:\[My Folder]'

Square brackets have special meaning.

It's actually a POSIX feature so you can do this:

dir [a-f]*

This will give you all things in current directory that start with letter A through F. Bash has the same feature.

Problem

I am trying to validate the existence of a file but the problem is that the file name has brackets in the name i.e. c:\test[R] 10005404, Failed with Comments, [S] SiteName.txt. I have tried using the string .replace method with no success. ``` $a = c:\test\[R] 10005404, Failed with Comments, [S] SiteName.txt $Result = (Test-Path $a) # Returns $False even though the file exists. ``` Tried ``` $a = $a.Replace("[", "`[") $a = $a.Replace("]", "`]") $Result = (Test-Path $a) # Also returns $False even though the file exists. ``` Ideas would be greatly appreciated. Thanks, ChrisM

Original source