Cela doit être quelque chose d'évident, mais je n'arrive pas à le faire fonctionner.powershell: combiner le chemin à l'aide d'une variable
J'essaye de construire une variable qui devrait contenir le chemin vers un fichier existant, en utilisant une variable d'environnement ($ env: programfiles (x86)). Cependant, je continue à avoir 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:\>
Cependant, 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
Qu'est-ce qui se passe, et comment y remédier?
L'espace manquant dans le deuxième exemple est-il simplement une faute de frappe? "Program Files (x86)" vs "Program Files (x86)" – craika
ce n'est pas, je l'obtiens sans espace aussi. très étrange – CharlesB
non, sur un système 64 bits, vous obtenez deux variables env: $ {env: programfiles} et $ {env: programfiles (x86)} – jeroenh