|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удалить в заданных файлах кусок кода |
|
CMD/BAT - Удалить в заданных файлах кусок кода
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Приветствую всех профи. Может ли кто-нибудь оказать посильную помощь:
Требуется: - задать список файлов, в котором будет производиться поиск; - задать список переменных name. Программа находит блок кода с указанной переменной name и удаляет весь блок кода. Пример трех блоков кода: [1846] ; cse_abstract properties section_name = climable_object name = clmbl#0 position = -106.643463134766,-2.1507089138031,-143.208633422852 direction = 9.43627092055976e-005,3.14159274101257,-1.57082176208496 ; cse_alife_object properties game_vertex_id = 703 distance = 0 level_vertex_id = 172 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 1.38665246963501,0,0 shape0:axis_y = 0,0.363929748535156,0 shape0:axis_z = 0,0,0.00012969970703125 shape0:offset = 0,0,0 [1857] ; cse_abstract properties section_name = lights_hanging_lamp name = lights_gi_r2_blue_0004 position = -71.9155960083008,-0.432599604129791,-134.792053222656 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 703 distance = 0 level_vertex_id = 172 object_flags = 0xffffffba custom_data = <<END [collide] ignore_static END ; cse_visual properties ; cse_ph_skeleton properties ; cse_alife_object_hanging_lamp properties main_color = 0xff78879d main_brightness = 0.100000001490116 main_color_animator = light\omni_01 main_range = 4.5 light_flags = 0x8 health = 100 main_virtual_size = 0.100000001490116 ambient_radius = 2 ambient_power = 0.100000001490116 main_cone_angle = 2.09439516067505 glow_radius = 0.699999988079071 [2518] ; cse_abstract properties section_name = space_restrictor name = val_farm_zone position = -136.152282714844,0.170738220214844,-504.968627929688 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 811 distance = 0 level_vertex_id = 316473 object_flags = 0xffffff3e story_id = 435 ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 9.46899890899658 ; cse_alife_space_restrictor properties restrictor_type = 3 [2518] ; cse_abstract properties section_name = space_restrictor name = val_farm_zone position = -136.152282714844,0.170738220214844,-504.968627929688 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 811 distance = 0 level_vertex_id = 316473 object_flags = 0xffffff3e story_id = 435 ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 9.46899890899658 ; cse_alife_space_restrictor properties restrictor_type = 3 |
|
Отправлено: 11:58, 14-10-2013 |
Ветеран Сообщения: 1758
|
Батник:
Powershell: ЗЫ. А внешняя программа только удаляет определенные секции? Просто это можно сделать прямо из скрипта Powershell. |
Последний раз редактировалось Foreigner, 14-10-2013 в 21:33. Отправлено: 21:21, 14-10-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Извиняюсь, что не совсем ясно изъяснился, но внешней программы нет. Я имел ввиду, что в батнике (или Powershell) нужно задать список файлов и список переменных name и при запуске этого самого батника он должен находить блоки кода, которые содержат указанные переменные и удалять их. Сможете подправить свои батник и Powershell? Спасибо.
|
Последний раз редактировалось mrkane, 15-10-2013 в 09:17. Отправлено: 08:51, 15-10-2013 | #3 |
Ветеран Сообщения: 1758
|
PowerShell:
$list = '1.ini', '2.ini' # список файлов $value = 'val_farm_zone' # Значение параметра name, секцию с ним надо удалить foreach ( $file in $list ) { $sections = @() switch -regex ( gc $file ) { "\[.*\]" { $sections += $sec; $sec = @($_) } default { if ( $_ -match "^name\s=\s$value$" ) { $sec = $null } elseif ( $sec ) { $sec += $_ } }} $sections | sc $file } |
Последний раз редактировалось Foreigner, 18-10-2013 в 19:37. Отправлено: 19:29, 18-10-2013 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Вывод заданных свойств процесса | kelevara | Скриптовые языки администрирования Windows | 7 | 08-05-2013 16:42 | |
CMD/BAT - Расскажите как работает данный кусок кода(регулярные выражения) | элькхар | Скриптовые языки администрирования Windows | 4 | 24-10-2012 22:04 | |
CMD/BAT - Удалить определенные строки в текстовых файлах | Seryoga204 | Скриптовые языки администрирования Windows | 0 | 05-08-2012 14:53 | |
VBS/WSH/JS - [решено] Нужно быстро (!) удалить пустые строки во всех txt-файлах из одной директории | andreton | Скриптовые языки администрирования Windows | 10 | 08-06-2010 03:39 | |
CMD/BAT - [решено] Вывод заданных параметров | storm2005 | Скриптовые языки администрирования Windows | 1 | 08-01-2010 10:34 |
|