Problem
You want to build a new path out of a combination of subpaths.
Solution
To join elements of a path together, use the JoinPath cmdlet:
PS >JoinPath (GetLocation) newfile.txt C:\temp\newfile.txt
Discussion
The usual way to create new paths is by combining strings for each component, placing a path separator between them:
PS >"$(GetLocation)\newfile.txt" C:\temp\newfile.txt
Unfortunately, this approach suffers from a handful of problems:
- What if the directory returned by GetLocation already has a slash at the end?
- What if the path contains forward slashes instead of backslashes?
- What if we are talking about registry paths instead of filesystem paths? Fortunately, the JoinPath cmdlet resolves these issues and more. For more information about the JoinPath cmdlet, type GetHelp JoinPath.