|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выборочное копирование из текстового файла. |
|
CMD/BAT - [решено] Выборочное копирование из текстового файла.
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Уважаемые эксперты! Помогите пожалуйста в написании скрипта.
Задача такая: есть файл, который представляет из себя переведенный в текст XML файл с курсами валют ЦБ. Он имеет примерно такой вид: <?xml version="1.0" encoding="windows-1251" ?> <ValCurs Date="08.03.2012" name="Foreign Currency Market"> <Valute ID="R01010"> <NumCode>036</NumCode> <CharCode>AUD</CharCode> <Nominal>1</Nominal> <Name>Австралийский доллар</Name> <Value>31,3291</Value> </Valute> <Valute ID="R01020A"> <NumCode>944</NumCode> <CharCode>AZN</CharCode> <Nominal>1</Nominal> <Name>Азербайджанский манат</Name> <Value>37,7813</Value> </Valute> <Valute ID="R01035"> <NumCode>826</NumCode> <CharCode>GBP</CharCode> <Nominal>1</Nominal> <Name>Фунт стерлингов Соединенного королевства</Name> <Value>46,6466</Value> </Valute> <Valute ID="R01060"> <NumCode>051</NumCode> <CharCode>AMD</CharCode> <Nominal>1000</Nominal> <Name>Армянских драмов</Name> <Value>76,2522</Value> </Valute> <Valute ID="R01090"> <NumCode>974</NumCode> <CharCode>BYR</CharCode> <Nominal>10000</Nominal> <Name>Белорусских рублей</Name> <Value>36,2617</Value> </Valute> <Valute ID="R01100"> <NumCode>975</NumCode> <CharCode>BGN</CharCode> <Nominal>1</Nominal> <Name>Болгарский лев</Name> <Value>19,9248</Value> </Valute> <Valute ID="R01115"> <NumCode>986</NumCode> <CharCode>BRL</CharCode> <Nominal>1</Nominal> <Name>Бразильский реал</Name> <Value>16,8688</Value> </Valute> <Valute ID="R01135"> <NumCode>348</NumCode> <CharCode>HUF</CharCode> <Nominal>100</Nominal> <Name>Венгерских форинтов</Name> <Value>13,2467</Value> </Valute> <Valute ID="R01215"> <NumCode>208</NumCode> <CharCode>DKK</CharCode> <Nominal>10</Nominal> <Name>Датских крон</Name> <Value>52,4204</Value> </Valute> <Valute ID="R01235"> <NumCode>840</NumCode> <CharCode>USD</CharCode> <Nominal>1</Nominal> <Name>Доллар США</Name> <Value>29,6621</Value> </Valute> <Valute ID="R01239"> <NumCode>978</NumCode> <CharCode>EUR</CharCode> <Nominal>1</Nominal> <Name>Евро</Name> <Value>38,9938</Value> </Valute> и т.д. Необходимо извлечь из него значения курсов доллара и евро и перенести их в другой текстовый файл в виде: USD29.66 EUR38.99 Буду очень благодарен за любую подсказку. |
|
Отправлено: 18:00, 09-03-2012 |
Ветеран Сообщения: 1758
|
@echo off setlocal for %%i in (USD EUR) do ( for /f "tokens=1 delims=:" %%j in (' findstr /n "%%i" 1.txt ') do call:result %%j %%i ) goto:eof :result set /a skip=%1+2 for /f "skip=%skip% tokens=1,2 delims=><" %%i in ( 1.txt ) do set "%%i=%%j" && goto:echo :echo 1>>result.txt echo %2%value:~0,-2% # get-currency.ps1 $date = get-date -format "dd/MM/yyyy" $xml = new-object xml $xml.load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date") "$($xml.ValCurs.Date) $($xml.ValCurs.name)" $result = @() $xml.ValCurs.Valute | % { $valute = @{} $valute.Code = $_.CharCode $valute.Name = $_.Name $valute.Nominal = $_.Nominal $valute.Value = $_.Value $result += $(new-object psobject -p $valute) } $result | ft Name, Code, Nominal, Value -auto |
Последний раз редактировалось Foreigner, 09-03-2012 в 20:20. Отправлено: 20:10, 09-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Большое спасибо, что откликнулись!
К сожалению не могу понять, что не так. Но в результате только USD~0,-2. |
Отправлено: 21:11, 09-03-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать odin1, возьмите лучше приведённый код на PowerShell. Там Вам сразу и загрузка, и вывод. Результат можно и отфильтровать, и вывести в файл.
|
Отправлено: 21:17, 09-03-2012 | #4 |
Ветеран Сообщения: 1758
|
|
|
Отправлено: 21:26, 09-03-2012 | #5 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо огромное! Действительно, я не обратил внимания, что эти пробелы исчезли при копировании. Сейчас все работает великолепно! Еще раз балагодарю!
|
Отправлено: 22:00, 09-03-2012 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. | valen | Скриптовые языки администрирования Windows | 0 | 07-11-2011 17:27 | |
CMD/BAT - [решено] Разбивка текстового файла файла | Seryoga204 | Скриптовые языки администрирования Windows | 1 | 04-10-2010 21:19 | |
Скрипт по обработке текстового файла | Space-06 | AutoIt | 4 | 26-06-2009 10:36 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 | |
C/C++ - Открытие текстового файла | .::.DIMA.::. | Программирование и базы данных | 4 | 05-05-2009 12:17 |
|