Questo deve essere una cosa ovvia, ma non riesco a farlo funzionare.PowerShell: combinando percorso utilizzando una variabile
Sto cercando di costruire una variabile che dovrebbe contenere il percorso di un file esistente, utilizzando una variabile d'ambiente ($ env: Programmi (x86)). Tuttavia continuo a ricevere errori e non riesco a capire perché.
Questo funziona bene (se il file esiste):
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:\>
Tuttavia, questo non lo fa:
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
Che cosa sta succedendo, e come risolvere il problema?
Lo spazio mancante nel secondo esempio è solo un errore di battitura? "Program Files (x86)" vs "Program Files (x86)" – craika
non lo è, ho capito anche senza spazio. molto strano – CharlesB
no, su un sistema a 64 bit si ottengono due variabili env: $ {env: programfiles} e $ {env: programfiles (x86)} – jeroenh