To musi być coś oczywistego, ale nie mogę tego uruchomić.powershell: łączenie ścieżki za pomocą zmiennej
Próbuję utworzyć zmienną, która powinna zawierać ścieżkę do istniejącego pliku przy użyciu zmiennej środowiskowej ($ env: programfiles (x86)). Jednak ciągle dostaję błędy i nie rozumiem, dlaczego.
To działa prawidłowo (jeśli plik istnieje):
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:\>
Jednak to nie:
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
Co się dzieje i jak to naprawić?
Czy brakujące miejsce w drugim przykładzie to tylko literówka? "Program Files (x86)" w porównaniu z "Program Files (x86)" – craika
to nie jest, dostaję go również bez miejsca. bardzo dziwne – CharlesB
nie, w systemie 64-bitowym masz dwie zmienne env: $ {env: programfiles} i $ {env: programfiles (x86)} – jeroenh