Я пытаюсь сохранить путь к папке в качестве переменной в PowerShell, так что я могу повторно использовать этот путь для различных задач на протяжении всего моего сценария:Использование переменной в пути выполнения
# Local storage location
$env:localTempFolder="TEMP"
# Download some executable and store it in the local temp folder
$env:downloadURL="http://somepage.com/foo.exe"
Invoke-WebRequest $env:downloadURL -OutFile $env:localTempFolder/foo.exe
# Execute the executable using the $localTempFolder variable
./$env:localTempFolder/foo.exe
Последнее утверждение дает следующее сообщение об ошибке :
.\$env:localTempFolder\.exe : The term '.\$env:pci_TEMP\foo.exe' is not
recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At line:1 char:1
+ .\$env:pci_TEMP\foo.exe
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (.\$env:localTempFolder\foo.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Я попытался добавить различные комбинации скобок, кавычек и т.д. до последнего заявления, но не похоже, чтобы получить это право. Что я делаю не так, и куда я иду отсюда?
'& ./$ ENV: localTempFolder/foo.exe' – PetSerAl
@PetSerAl, ну, это было достаточно легко! Спасибо! Не могли бы вы опубликовать это как ответ? –
Я бы сказал, что это [дубликат] (http://stackoverflow.com/q/33415302), вместо того, чтобы публиковать такой же ответ здесь. Вам нужно вызвать оператор для расширения переменных в команде, иначе он будет интерпретироваться как константная (не расширяемая) строка. – PetSerAl