だから私の問題を説明する最も簡単な方法は私がやろうとしていることのこの単純化されたバージョンをあなたに示すことです。
PS C:\> $a = 'hello'
PS C:\> $a
hello
PS C:\> $b = '$a world!'
PS C:\> $b
$a world!
今、私が本当に欲しいのは$ bを呼び出して 'hello world!'を返すことです。しかし、私はどうやら変数を呼び出すことはできません 内に このような別の変数。誰かが何か提案や回避策を持っていますか?ここでは明らかなことが足りないような気がします。
編集:私がやろうとしていることのより正確なバージョン:
PS C:\> $selHost = (get-content c:\scripts\hosts.txt)[0]
PS C:\> $selhost
spr-it-minion
PS C:\> $a = (get-content c:\scripts\config.txt)[1]
PS C:\> $a
$selhost Is Offline!
PS C:\> $b = "$a"
PS C:\> $b
$selhost Is Offline!
それで、私はhosts.txtから最初の行を抜き出してそれを$ selhostに設定します。これは単に 'spr-it-minion'です。それからconfig.txtから2行目を取り出します。これは単なる文字列「$ selhost is offline!」です。私が$ aを呼び出すときに私は「spr-it-minionはオフラインです」と願っています。私はどうすればいいのかわかりません。
編集II:それぞれhosts.txtとconfig.txtの内容。
hosts.txt:
spr-it-minion
spr-saflok
spr-crosby
spr-vmhost01
spr-vmhost02
spr-vmhost03
config.txt:
172.31.1.124
$selhost Is Offline!
$selhost Is Offline!
example@company.com
example2@company.com
編集III: ペーストビン あなたが興味を持っているなら、私の実際のスクリプトに。
15行目:$ alertSubjectを "$ selhost is offline!"という文字列に設定します。引用符などはありません。
82行目:$ alertSubjectを電子メール警告の件名として使用します。この変数に含まれる変数の値は、「spr-it-minionはオフラインです」のように表記します。しかし、私が電子メールを受け取ったり、スクリプトのどこかに$ alertSubjectを書いてみると、単に "$ selhostはオフラインです!"と表示されます。
$a = $b
うまくいくはずです。のことを考える "
「ここにあるものを、どんな変数も含めて解凍する」という意味です。誰かがこれが事実であることを確認できますか?