|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как получить значение искомой подстроки в строке? |
|
CMD/BAT - Как получить значение искомой подстроки в строке?
|
Старожил Сообщения: 362 |
Есть XML файл, состоящий из одной Длинной строчки
нужно найти в этой строчке упоминание переменной xxx и получить ее значение. Например. кусок строки XML: ... aaa="1" bbb=2 ccc="acb" ... xxx="4" .... вот как то нужно Чему равно xxx |
|
------- Отправлено: 11:20, 31-03-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Сложный случай. Во-первых у cmd ограничение длины строки в 4095 по-дефолту (кажется), расширяемое до 16383 (кажется). если Ваш однострочный XML больше, вернее нужная Вам переменная находится дальше границы - то возможно только с привлечением софтин, не входищих в Виндовс по-дефолту.
Далее, сильное влияние на код окажет начало XML-файла, которое просьба здесь процетировать. (не значит, что дословно, все переменные и их значения можете заменить на любые беспалевные для Вас, важна сама структура до начала списка переменных, ну включая первые несколько переменных, чтобы подогнать без ошибок... Но вообще возможно таким образом (ставка сделана на то, что знак "=" не может оказаться в кавычках, а также на то, что значения переменных не могут содержать пробелов, а разрыв между переменными сделан исключительно на пробелах. *видите сколько "условностей"? ![]() @echo off SetLocal EnableExtensions SetLocal EnableDelayedExpansion set File="SOURCE.XML" set Var=xxx for /f "usebackq tokens=* delims=" %%L in (%File%) do ( set Line=%%L :XML for /f "usebackq tokens=1,* delims= " %%B in ('!Line!') do ( for /f "usebackq tokens=1,* delims==" %%V in ('%%B') do if "%%V"=="%Var%" set Value=%%~W set Line=%%C ) if not "!Line!"=="" goto XML ) if not "%Value%"=="" echo %Value% |
------- Отправлено: 21:09, 01-04-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 1
|
Профиль | Сайт | Отправить PM | Цитировать а можно из этого достать только url (все в строчке)?
<?xml version='1.0' encoding='UTF-8'?> <titlepatch status="alive" titleid="BLUS31181"><tag name="BLUS31181_T38" popup="true" signoff="true"><package version="01.13" size="9028848240" sha1sum="1c2d1b7c90fdf2de2902d215cad360fd8702ef3a" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0013-A0113-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.14" size="31146880" sha1sum="5f6f7b4191310888daac9ac9a471ee31e012dfd9" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0014-A0114-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.15" size="31376272" sha1sum="e9d1a0e1aad21357e734c8c04eddfd0c2a33495b" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0015-A0115-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.16" size="387354160" sha1sum="ad606edb241465eb66878e4a68635d366124994d" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0016-A0116-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.17" size="49766464" sha1sum="ee40beab87c57030d54049d6a65560ac50eec7d6" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0017-A0117-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.18" size="352585248" sha1sum="3c12317cbf2d416bf529b0cc582df5c332722045" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0018-A0118-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.19" size="100275776" sha1sum="be08f4328f8658396396a86aa40284fc2c2a3931" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0019-A0119-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.20" size="1122184704" sha1sum="5410b588380f9180739116d72a945b4b8b7a77c3" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0020-A0120-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.21" size="33303440" sha1sum="3144fb7d932ce00ebaa1463532eb98c84d944eaf" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0021-A0121-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.22" size="220153536" sha1sum="f774924769df05e1c61790a98d227241839b5e41" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0022-A0122-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.23" size="55506352" sha1sum="cf5fa69c7ac86465a0f718c9f7d91ee4017be6aa" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0023-A0123-V0100-PE.pkg" ps3_system_ver="04.5000"/><package version="01.24" size="31589024" sha1sum="d70b4eb6596a40e7b92f433f6c6badfb0e43f37f" url="http://b0.ww.np.dl.playstation.net/tppkg/np/BLUS31181/BLUS31181_T38/a6eff409d3a4c771/UP0002-BLUS31181_00-DESTINYPATCH0024-A0124-V0100-PE.pkg" ps3_system_ver="04.5000"><paramsfo><TITLE>Destiny</TITLE></paramsfo></package></tag></titlepatch> |
Отправлено: 08:37, 24-02-2018 | #12 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Получить значение ячейки из таблицы HTML | Lodoss | AutoIt | 2 | 30-12-2009 07:15 | |
CMD/BAT - [решено] Как получить значение "вложенной" переменной. | volk1234 | Скриптовые языки администрирования Windows | 4 | 03-10-2009 15:51 | |
[решено] Как получить значение текущего индекса Combo и кол-во элементов Combo | malev | AutoIt | 4 | 22-06-2009 16:27 | |
Разное - [решено] как в командной строке получить идентификатор пользователя ? | mitiya | Microsoft Windows 2000/XP | 3 | 05-09-2008 00:53 | |
Как получить значение CPU и VM. Желательно на С++ | Lenycik | Программирование и базы данных | 3 | 16-05-2007 12:07 |
|