|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Выделить из строки текста слово определенной длины и записать в переменную |
|
|
PowerShell - [решено] Выделить из строки текста слово определенной длины и записать в переменную
|
Новый участник Сообщения: 16 |
здравствуйте!
есть задача загрузить через powershell файл и преобразовать его в csv вида: N;C1;C7;C30;C90;C180;C360 1; 7.28; 7.54; 8.05; 8.58; 8.93; 9.19 2…. сам файл имеет примерно такую структуру: <Record Code="1" Date="07/07/2014"><C1>7.28</C1><C7>7.54</C7><C30>8.05</C30><C90>8.58</C90><C180>8.93</C180><C360>9.19</C360></Record> <Record Code="2" Date="07/07/2014"><C1>7.89</C1><C7>8.22</C7><C30>9.00</C30><C90>9.41</C90><C180>9.81</C180><C360>10.19</C360>></Record> возник вопрос: как из строки выделить номер кода (code="1"), значения между <C1>...</C1> и вывести их в csv с заданным видом |
|
Отправлено: 14:20, 15-07-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Приведите полный формат файла, возможно это xml.
[xml]$xml = @" <?xml version="1.0"?> <Records> <Record Code="1" Date="07/07/2014"><C1>7.28</C1><C7>7.54</C7><C30>8.05</C30><C90>8.58</C90><C180>8.93</C180><C360>9.19</C360></Record> <Record Code="2" Date="07/07/2014"><C1>7.89</C1><C7>8.22</C7><C30>9.00</C30><C90>9.41</C90><C180>9.81</C180><C360>10.19</C360>></Record> </Records> "@ PS > $xml.Records.Record Code : 1 Date : 07/07/2014 C1 : 7.28 C7 : 7.54 C30 : 8.05 C90 : 8.58 C180 : 8.93 C360 : 9.19 Code : 2 Date : 07/07/2014 C1 : 7.89 C7 : 8.22 C30 : 9.00 C90 : 9.41 C180 : 9.81 C360 : 10.19 #text : > PS > $xml.Records.Record | convertto-csv -Delimiter ";" -NoTypeInformation "Code";"Date";"C1";"C7";"C30";"C90";"C180";"C360" "1";"07/07/2014";"7.28";"7.54";"8.05";"8.58";"8.93";"9.19" "2";"07/07/2014";"7.89";"8.22";"9.00";"9.41";"9.81";"10.19" |
Отправлено: 14:37, 15-07-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать так и есть, это xml-файл
<?xml version="1.0" encoding="windows-1251" ?> ---------------------------------------------- <MKR FromDate="20140707" ToDate="20140707" name="Interbank Credit Market"> <Record Date="07/07/2014" Code="1" > <C1>7.28</C1> <C7>7.54</C7> <C30>8.05</C30> <C90>8.58</C90> <C180>8.93</C180> <C360>9.19</C360> </Record> <Record Date="07/07/2014" Code="2" > <C1>7.89</C1> <C7>8.22</C7> <C30>9.00</C30> <C90>9.41</C90> <C180>9.81</C180> <C360>10.19</C360> </Record> <Record Date="07/07/2014" Code="3" > <C1>7.75</C1> <C7>10.07</C7> <C30>8.25</C30> <C90>10.58</C90> <C180>9.82</C180> <C360>10.15</C360> </Record> <Record Date="07/07/2014" Code="4" > <C1>7.68</C1> <C7>-</C7> <C30>-</C30> <C90>-</C90> <C180>-</C180> <C360>-</C360> </Record> <Record Date="07/07/2014" Code="5" > <C1>180659.39</C1> <C7>317.60</C7> <C30>5.20</C30> <C90>300.00</C90> <C180>2160.00</C180> <C360>480.00</C360> </Record> <Record Date="07/07/2014" Code="6" > <C1>48704.00</C1> <C7>-</C7> <C30>-</C30> <C90>-</C90> <C180>-</C180> <C360>-</C360> </Record> <Record Date="07/07/2014" Code="7" > <C1>7.81</C1> <C7>12.00</C7> <C30>-</C30> <C90>-</C90> <C180>-</C180> <C360>-</C360> </Record> <Record Date="07/07/2014" Code="8" > <C1>15228.80</C1> <C7>160.00</C7> <C30>-</C30> <C90>-</C90> <C180>-</C180> <C360>-</C360> </Record> </MKR> |
Отправлено: 14:44, 15-07-2014 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:47, 15-07-2014 | #4 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать спасибо за помощь!
|
|
Отправлено: 14:47, 15-07-2014 | #5 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать есть небольшая проблемка
при сохранении в формате csv итог получается такой: Date Code C1 C7 C30 C90 C180 C360 07.07.2014 1 июл.28 июл.54 08.май авг.58 авг.93 сен.19 07.07.2014 2 июл.89 авг.22 9.00 сен.41 сен.81 окт.19 07.07.2014 3 июл.75 10.июл авг.25 окт.58 сен.82 окт.15 07.07.2014 4 июл.68 - - - - - 07.07.2014 5 180659.39 317.60 май.20 300.00 2160.00 480.00 07.07.2014 6 48704.00 - - - - - 07.07.2014 7 июл.81 12.00 - - - - 07.07.2014 8 15228.80 160.00 - - - - вместо значений c1 ... c360 в некоторых местах стоит дата, а остальные значения не совпадают здесь уже нужно бороться с форматом ячеек в excel? |
Последний раз редактировалось Grafitchic, 15-07-2014 в 15:05. Причина: дополнение Отправлено: 15:02, 15-07-2014 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:18, 15-07-2014 | #7 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать при выборе csv, excel сразу открывает его и не вызывает мастер текстов
|
Отправлено: 15:30, 15-07-2014 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:38, 15-07-2014 | #9 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать всё в порядке, разобрался. kazun, благодарю за помощь.
|
Отправлено: 15:38, 15-07-2014 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Последнее слово из строки в файле в переменную | NoIZz | Скриптовые языки администрирования Windows | 2 | 23-10-2013 14:11 | |
Офис и Текст - [решено] Как выделить строки с определенны символами | KooDI | Программное обеспечение Windows | 2 | 03-03-2013 14:27 | |
CMD/BAT - найти файл и записать в переменную | pzh2393 | Скриптовые языки администрирования Windows | 7 | 20-01-2013 03:35 | |
CMD/BAT - [решено] Выделить из текстового файла строки, содеражщие дату формата DD.MM.YYYY за указанный | jrd | Скриптовые языки администрирования Windows | 2 | 17-02-2012 16:57 | |
CMD/BAT - [решено] Чтение строки из файла в переменную | Николя | Скриптовые языки администрирования Windows | 42 | 17-01-2010 19:42 |
|