Я пишу сценарий Powershell и в нем я использую хеш-таблицу для хранения информации о проверках базы данных.Таблица имеет 5 ключей (хост, проверка, время последнего выполнения, последнее повторение, статус), и я хочу найти в своей таблице значения, где:
$s = $table where $host -eq $hostname -and check -eq $check
Кто-нибудь знает, как это сделать?И если это что-то меняет, сценарий не может полагаться на .NET Framework выше 2.0
Я новичок в Powershell и сценариях в целом, так что это может быть очень очевидно, но я все еще не могу найтиответ в гугле.Также, если кто-то знает хорошую справочную страницу для сценариев Powershell, я был бы очень признателен за ссылку.
Gísli
РЕДАКТИРОВАТЬ: не понимаю, как это важно, но вот функция, которую я использую дляхеш-таблица:
function read_saved_state{
$state = @{}
$logpos = @{}
$last_log_rotate = 0
foreach($s in Get-Content $saved_state_file){
$x = $s.split('|')
if($x[0] -eq 'check'){
$state.host = $x[1]
$state.check = $x[2]
$state.lastexec = $x[3]
$state.lastrep = $x[4]
$state.status = $x[5]
}
elseif($x[0] -eq 'lastrotate'){
$last_log_rotate = $x[1]
}
elseif($x[0] -eq 'log'){
$logpos.lastpos = $x[3]
}
}
$ сохраненный_стайл_файл содержит одну строку для каждого контрольного прогона, а также может содержать строку для последнего поворота журнала и последней позиции журнала.Для одного хоста может быть до 12 проверок.
Я пытаюсь извлечь конкретную проверку, запустить на определенном хосте и изменить lastexec_time, last_rep и status.вернуть $ state, $ logpos, $ last_log_rotate}