PowerShell: combiner le chemin en utilisant une variable

Ce doit être quelque chose d'évident, mais je ne peux pas obtenir que cela fonctionne.

Je suis en train de construire une variable qui doit contenir le chemin d'accès à un fichier existant, à l'aide d'une variable d'environnement ($env:programfiles(x86)). Cependant je continue à faire des erreurs, et je ne vois pas pourquoi.

Cela fonctionne bien (si le fichier existe):

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:\>

Toutefois, cela ne signifie pas:

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

Ce qui se passe, et comment le résoudre?

source d'informationauteur jeroenh | 2010-12-13