如何将字符串中的变量替换为其值?

问题描述 投票:0回答:1

我看到很多在字符串中使用变量的例子,但这是一个稍微不同的问题,也许我没有正确地表达它以寻找答案。我有一个字符串,其中有一个变量,但该变量的值尚未被该值替换。我将此字符串存储在数据库中,以便可以在不更改代码的情况下更改设置,并且多个脚本可以共享这些值。

如果我在 shell 中输入以下内容:

$ScriptPath = "C:\Scripts"
$LogPath = "$ScriptPath\Logs"

效果很好。我回来了

C:\Scripts\Logs

如果我从数据库中读取该字符串,那就是另一回事了。

$SQL = "SELECT * FROM Script_Settings WHERE enabled = 1 AND (environment = '$Environment' OR environment = '*') AND version = $Version ORDER BY environment"
$sqlresult = Invoke-SQLCmd -ServerInstance $SettingDBServer -Database $SettingsDB -Query $SQL -TrustServerCertificate
$LogPath = $sqlresult.Log_Path
Write-Output $LogPath

$ScriptPath\Logs

是否可以让 Powershell 来计算字符串?我想它相当于:

$ThePath = '$ScriptPath\Logs'
$LogPath = $ThePath
powershell variables
1个回答
0
投票

在 PowerShell 中使用字符串模板的一种快速方法是调用

$ExecutionContext.InvokeCommand.ExpandString
来插入字符串。

$ScriptPath = "C:"
$ThePath = '$ScriptPath\Logs'
$ExecutionContext.InvokeCommand.ExpandString($ThePath)

会回来

C:\Logs
© www.soinside.com 2019 - 2024. All rights reserved.