我試圖做一些與Powershell解析不同尋常的事情。基本上,我有一個包含變量名稱的文字字符串。我想要做的是告訴powershell「嗨,我有一個字符串(可能)包含一個或多個變量名稱 - 動態解析它,用它們的值替換變量名稱」PowerShell中的動態字符串解析
這裏是教科書的方式我明白解析作品:
PS C:\> $foo = "Rock on"
PS C:\> $bar = "$foo"
PS C:\> $bar
Rock on
如果我現在改變了價值$ foo的:
PS C:\> $foo = "Rock off"
PS C:\> $bar
Rock on
沒有意外在這裏。 $ bar的值在分配時被解析,並且因爲$ foo的值改變而沒有改變。
好吧,那麼如果我們爲$ bar分配單引號會怎麼樣?
PS C:\> $foo = "Rock on"
PS C:\> $bar = '$foo'
PS C:\> $bar
$foo
這很好,但有沒有辦法讓Powershell按需解析它?例如:
PS C:\> $foo = "Rock on"
PS C:\> $bar = '$foo'
PS C:\> $bar
$foo
PS C:\> Some-ParseFunction $bar
Rock on
PS C:\> $foo = "Rock off"
PS C:\> Some-ParseFunction $bar
Rock off
爲什麼我要這樣做?我希望能夠從一個文件(或數據源)獲取內容並動態解析它:
PS C:\> $foo = "Rock on"
PS C:\> '$foo with your bad self.' | out-file message.txt
PS C:\> $bar = (get-content message.txt)
PS C:\> $bar
$foo with your bad self.
PS C:\> Some-ParseFunction $bar
Rock on with your bad self.
可以這樣做?我意識到我可以爲搜索/替換已知名稱做一些模式匹配,但我寧願讓Powershell重新分析字符串。
謝謝!
正是我一直在尋找,謝謝! – RobO 2011-02-17 21:54:38