|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Копирование строки с условием |
|
CMD/BAT - Копирование строки с условием
|
Новый участник Сообщения: 13 |
Приветствую!
Возможно создать скрипт, при запуске которого сканировалась каждая строка файла xml или txt и если в строке есть определенная часть (например <text> или <desc>), то скопировать данную строку целиком в отдельный фаил. Если в строке данной части нет, то сделать отступ. Желательно запускать .BAT или подсказать, как можно запускать решение. Возможно такое? Фаил и пример https://ibb.co/mXTQhrB |
|
Отправлено: 10:15, 14-10-2022 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать жаль, я хотел знакомому оптимальный вариант скинуть, что бы у него проблем не было.
|
Отправлено: 22:51, 14-10-2022 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Zoidman:
|
|
------- Отправлено: 08:32, 15-10-2022 | #12 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Zoidman:
В первом приближении: Powershell: Добавление тегов: script_addtag.ps1 param ( $path = '.\TEST', $flt = '*.xml', $enc = 'utf8' ) dir $path -filter $flt -file|%{ $tmp = $_.fullname if (($text = (gc $tmp -enc $enc -raw)) -notmatch '<root>'){ $text = $text -replace '(<\?xml version="1\.0" encoding="UTF-8"\?>)',"`$1`r`n<root>"` -replace '([^\r\n][\r\n]*)$',"`$1`r`n</root>" $text |out-file $tmp -enc $enc } } script.ps1 param ( $path = '.\TEST', $filter = '*.xml', $par1 = 'name', $par2 = 'desc', $par3, $par4, $enc = 'utf8', $out = '.\out.csv' ) function custom-obj ($f,$id,$k,$l,$m,$n) { [pscustomobject]@{ 'FILE' = $f 'ACHIEVE_ID' = $id 'PARAM_1' = if ($k){$k} else {'NULL'} 'PARAM_2' = if ($l){$l} else {'NULL'} 'PARAM_3' = if ($m){$m} else {'NULL'} 'PARAM_4' = if ($n){$n} else {'NULL'} } } $arr = dir $path -filter $filter -file|%{ $file = $_.name [xml]$xml = gc $_.fullname -enc $enc $xml.selectnodes("//achievement") |%{ custom-obj $file $_.id $_.$par1 $_.$par2 $_.$par3 $_.$par4 } } $arr| convertto-csv |out-file $out -enc $enc Скрипты можно запускать с параметрами. Например: |
|
------- Последний раз редактировалось YuS_2, 15-10-2022 в 12:06. Отправлено: 11:59, 15-10-2022 | #13 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Замена части строки с условием (sed, awk) | DJ Mogarych | Программирование в *nix | 3 | 15-01-2020 13:30 | |
CMD/BAT - Копирование группы файлов с условием | APST | Скриптовые языки администрирования Windows | 8 | 28-04-2018 09:35 | |
Помогите с двумя скриптами (резервное копирование и копирование с условием) | n_i_x | Программирование в *nix | 3 | 21-06-2015 01:54 | |
CMD/BAT - [решено] Копирование папок с условием | sjaybez | Скриптовые языки администрирования Windows | 6 | 03-08-2014 22:19 | |
CMD/BAT - [решено] .bat Копирование с условием | TwoThrones | Скриптовые языки администрирования Windows | 1 | 09-01-2011 14:51 |
|