Поэтому самый простой способ объяснить мою проблему - это показать вам упрощенную версию того, что я пытаюсь сделать:
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, которая является просто строкой: $ selhost не в сети!'в надежде, что когда я позвоню $ 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: Pastebin к моему действительному сценарию, если кто-то из вас заинтересован.
Строка 15: я установил $ alertSubject в строку "$ selhost не в сети!"без кавычек или чего-либо.
Строка 82: я использую $ alertSubject в качестве строки темы оповещения по электронной почте, надеясь, что эта переменная будет иметь свое значение, например: «spr-it-minion вне форума!«но когда я получаю электронное письмо или пытаюсь написать-host $ alertSubject в любом месте скрипта, он просто говорит:« $ selhost не в сети!"