Si quiero combinar dos cadenas en una ruta de archivo, uso Join-Path
así:
$path = Join-Path C: "Program Files"
Write-Host $path
Eso imprime "C:\Program Files"
. Sin embargo, si quiero hacer esto por más de dos cadenas:
$path = Join-Path C: "Program Files" "Microsoft Office"
Write-Host $path
PowerShell arroja un error:
Join-Path: no se puede encontrar un parámetro posicional que acepte el argumento 'Microsoft Office'.
En D: \ users \ ma \ my_script.ps1: 1 char: 18
+ $ path = join-path <<<< C: "Archivos de programa" "Microsoft Office"
+ CategoryInfo: InvalidArgument: (:) [Join-Path] , ParameterBindingException
+ FullyQualifiedErrorId: PositionalParameterNotFound, Microsoft.PowerShell
.Commands.JoinPathCommand
Intenté usar una matriz de cadenas:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = Join-Path $pieces
Write-Host $path
Pero PowerShell me pide que ingrese el childpath (ya que no especifiqué el -childpath
argumento), por ejemplo, "somepath", y luego crea tres rutas de archivos,
C:\somepath
Program Files\somepath
Microsoft Office\somepath
lo cual tampoco está bien.