如果我想将两个字符串合并到一个文件路径中,我使用join-path
如下所示:
$path = join-path C: "Program Files"
write-host $path
打印C:\Program Files"
。如果我想为两个以上的字符串做这件事:
$path = join-path C: "Program Files" "Microsoft Office"
write-host $path
Powershell引发错误:
Join-Path : A positional parameter cannot be found that accepts argument 'Micro
soft Office'.
At D:\users\ma\my_script.ps1:1 char:18
+ $path = join-path <<<< C: "Program Files" "Microsoft Office"
+ CategoryInfo : InvalidArgument: (:) [Join-Path], ParameterBindi
ngException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.JoinPathCommand
我尝试使用一个字符串数组:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = join-path $pieces
write-host $path
但是Powershell会提示我输入childpath(因为我没有指定-childpath
参数),例如“somepath”,然后创建三个文件路径,
C:\somepath
Program Files\somepath
Microsoft Office\somepath
这也不正确。
发布于 2018-04-10 09:33:27
你可以使用.NET PATH类:
[io.path]::combine('c:\', 'foo', 'bar')
发布于 2018-04-10 10:16:38
由于Join-Path可以通过管道传递其路径值,因此可以将多个Join-Path语句连接在一起:
Join-Path "C:" -ChildPath "Windows" | Join-Path -ChildPath "system32" | Join-Path -ChildPath "drivers"
https://stackoverflow.com/questions/-100004377
复制相似问题