Мне нужна помощь с скриптом Powershell, который читает заданные строки из текстового файла и создает новую переменную со значениями из txtfile.Имя переменной должно быть $ var1, а значение должно быть $ var2.
Значение новой созданной переменной должно быть примерно таким:
$number = 4
$Computername = "Test123$number"
$txt = Get-Content -Path .xyz.txt | Where-Object {$_ -like '@set*'}
foreach ($line in $txt){
$firstclip=$line.IndexOf("(")
$delimiter=$line.IndexOf(",")
$lastclip=$line.IndexOf(")")
$var1=$line.Substring($firstclip+1,$delimiter - ($firstclip + 1))
$var2=$line.Substring($delimiter+1,$lastclip - ($delimiter + 1))
$var2=$var2 -replace '%([^-]+)%','$$$1'
Write-Host $var1
Write-host $var2
#New-Variable -Name $var1 -Value $var2
}
Содержимое файла TXT .xyz.txt
:
@Set(DeviceID, 11)
@Set(ComputerName, PC-Name-%DeviceID%)
@Set(Nic0Name, LAN)
@Set(Nic0Ip, 10.42.50.101)
@Set(Nic0Mask, 255.255.255.0)
@Set(Nic0Gateway, 10.42.50.50)
@Set(AmsNetId, %Nic0Ip%.1.1)
@Set(AmsRoute0Name, PC-NAME-01)
@Set(AmsRoute0Ip, 10.42.50.51)
@Set(AmsRoute0AmsNetId, %AmsRoute0Ip%.1.1)
@Set(VAS, 10.42.50.42)
@Set(IEHomePage, http://%VAS%/web/PC-0%DeviceID%.html)
@Set(IEPath, "C:\Program Files\Internet Explorer\iexplore.exe")
На самом деле значение равно Test123 $ number, поэтому Powershell не будет преобразовывать число $ в число, объявленное в переменной ранее.