Esto debe ser algo obvio, pero no puedo hacer que esto funcione.powershell: combina la ruta usando una variable
Estoy intentando construir una variable que debe contener la ruta a un archivo existente, usando una variable de entorno ($ env: programfiles (x86)). Sin embargo, sigo recibiendo errores y no veo por qué.
Esto funciona bien (si existe el archivo):
PS C:\> $f = "C:\Program Files (x86)" + '\sometextfile.txt'
PS C:\> $f
C:\Program Files (x86)\sometextfile.txt
PS C:\> gci $f
Directory: C:\Program Files (x86)
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 13/12/2010 14:03 0 sometextfile.txt
PS C:\>
Sin embargo, esto no es así:
PS C:\> "$env:programfiles(x86)"
C:\Program Files(x86)
PS C:\> $f = "$env:ProgramFiles(x86)" + '\sometextfile.txt'
PS C:\> $f
C:\Program Files(x86)\sometextfile.txt
PS C:\> gci $f
Get-ChildItem : Cannot find path 'C:\Program Files(x86)\sometextfile.txt' because it does not exist.
At line:1 char:4
+ gci <<<< $f
+ CategoryInfo : ObjectNotFound: (C:\Program Files(x86)\sometextfile.txt:String) [Get-ChildItem], ItemNot
FoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Lo que está pasando, y cómo solucionarlo?
¿El espacio faltante en el segundo ejemplo es solo un error tipográfico? "Archivos de programa (x86)" contra "Archivos de programa (x86)" – craika
no lo es, también lo obtengo sin espacio. muy extraño – CharlesB
no, en un sistema de 64 bits obtienes dos variables env: $ {env: programfiles} y $ {env: programfiles (x86)} – jeroenh