У меня есть скрипт для обновления строкового значения в файле калибровки, но я действительно застрял в обосновании обновления на следующей таблице поиска:
Level PARALLEL_VOLTAGE_TEST PARALLEL_VOLTAGE_REF
1 85 250
2 90 250
3 95 250
4 100 250
5 105 250
6 110 250
7 115 250
8 120 250
9 125 250
10 130 250
11 135 250
12 140 250
13 145 250
14 150 250
15 155 250
16 160 250
17 165 250
18 170 250
19 175 250
20 180 250
21 185 250
22 190 250
23 195 250
24 200 250
25 205 250
26 205 245
27 205 240
28 205 235
29 205 230
30 205 225
31 205 220
32 205 215
33 205 210
34 205 205
35 205 200
36 205 195
37 205 190
38 205 185
39 205 180
40 205 175
41 205 170
42 205 165
43 205 160
44 205 155
45 205 150
46 205 145
47 205 140
48 205 135
49 205 130
50 205 125
Например, если входной файл имеетстрока со значением PARALLEL_VOLTAGE_TEST 85 и значением PARALLEL_VOLTAGE_TEST 185, мне нужно найти эту пару значений в таблице и заменить значения на значения из 20 уровней (строк таблицы) ниже. Если такой строки нет, следует использовать значения из строк таблицы last .
Вот пример кода с парой значений в жестком коде *1009*, (85, 250)
(уровень 1
), который следует заменить значениями из уровня 21
, (185, 250)
, но мне нужно обобщить этот подход для работы со всеми парами значений:
$file = 'C:\Users\sugas\Desktop\Test\*.cal'
$VTEST = (Get-Content $file | select-string "PARALLEL_VOLTAGE_Test")
$VREF = (Get-Content $file | select-string "PARALLEL_VOLTAGE_REF")
if (($VTEST-imatch 'PARALLEL_VOLTAGE_Test 85') -and ($VREF-imatch 'PARALLEL_VOLTAGE_REF 250')) {
(Get-Content $file).replace($VTEST,'PARALLEL_VOLTAGE_Test 185')| Set-Content $file
(Get-Content $file).replace($VREF,'PARALLEL_VOLTAGE_REF 250') | Set-Content $file
}