|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вытащить кусок из строки вида ... | ... | ... | |
|
CMD/BAT - [решено] Вытащить кусок из строки вида ... | ... | ... |
|
Пользователь Сообщения: 92 |
Профиль | Отправить PM | Цитировать
Уважаемые знатоки, подскажите пожалуйста, как из пачки строк вида:
v2.20|Action=Allow|Active=FALSE|Dir=In|Profile=Domain|Profile=Private|Name=@{microsoft.windowscommunicationsapps_16.4.4206.722_x64__8wekyb3d8bbwe?ms-resource://microsoft.windowscommunicationsapps/resources/communicationsPackageName}|Desc=@{microsoft.windowscommunicationsapps_16.4.4206.722_x64__8wekyb3d8bbwe?ms-resource://microsoft.windowscommunicationsapps/resources/communicationsPackageName}|LUOwn=S-1-5-21-1311539638-139220600-4108783082-1001|AppPkgId=S-1-15-2-2551677095-2355568638-4209445997-2436930744-3692183382-387691378-1866284433|EmbedCtxt=@{microsoft.windowscommunicationsapps_16.4.4206.722_x64__8wekyb3d8bbwe?ms-resource://microsoft.windowscommunicationsapps/resources/communicationsPackageName}|Platform=2:6:2|Platform2=GTEQ| Есть идея? |
|
Отправлено: 20:57, 14-04-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Как-то так:
@echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq delims=" %%i in ("0001.txt") do ( set sLine=%%~i set sVar=!sLine:^|=" "! call :FoundName "!sVar!" echo [!FoundName!] ) endlocal exit /b 0 :FoundName setlocal enableextensions enabledelayedexpansion set sOut=%~0 :Repeat set sTwin=%~1 if defined sTwin ( if /i "%sTwin:~0,5%" == "Name=" ( set "s%sTwin%" ) shift goto :Repeat ) endlocal & set %sOut:~1%=%sName% exit /b |
Отправлено: 21:33, 14-04-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Может быть эдак?
@Echo Off cls SetLocal EnableExtensions EnableDelayedExpansion FOR /F "usebackq delims=" %%s IN (`Type zzzzzzzz.txt`) DO ( Set SS="%%s" Set SS=!SS:^|=" "! Set SS=!SS:*" "Name=Name! FOR /F "usebackq delims=}" %%L IN ('!SS!') DO Set String=%%L} Echo !String! ) Если Name= не надо, то @Echo Off cls SetLocal EnableExtensions EnableDelayedExpansion FOR /F "usebackq delims=" %%s IN (`Type zzzzzzzz.txt`) DO ( Set SS="%%s" Set SS=!SS:^|=" "! Set SS=!SS:*" "Name=! FOR /F "usebackq delims=}=" %%L IN ('!SS!') DO Set String=%%L} Echo !String! ) Set SS=!SS:^|=" "! Подсмотрел у Iska, |
------- Последний раз редактировалось megaloman, 15-04-2013 в 00:21. Отправлено: 23:55, 14-04-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать А если «delims» окажется не «}»?! Тогда уж лучше до пробела.
|
Отправлено: 00:25, 15-04-2013 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Iska, Сложно судить, что лучше, а если пробел внутри Name=@{.... ....}? Похоже, формат присваивания подразумевает парные скобки, но это тоже мои домыслы.
|
|
------- Отправлено: 00:30, 15-04-2013 | #5 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать megaloman, респект.
К решению близко, однако 1 вариант ругается когда ему дают раздел реестра Windows вместо файла reg query HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules /s Iska, работает отлично! Скрипт достойный ветерана, спасибо в 2000-й раз . |
Последний раз редактировалось Ксеноинженер, 15-04-2013 в 02:20. Отправлено: 01:06, 15-04-2013 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:26, 17-04-2013 | #7 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать megaloman, так работает. Вижу, поменяли разделитель во 2-м цикле и убрали лишнюю строку в 1-м. В общем, получился альтернативный, короткий код.
Спасибо участникам конференции. |
Последний раз редактировалось Ксеноинженер, 26-04-2013 в 17:05. Отправлено: 02:59, 21-04-2013 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Вытащить лицо из видео | seluin | Тест-форум | 0 | 17-02-2013 23:51 | |
CMD/BAT - вытащить из 3-x txt файлов строки в 4-й txt и отправить его в шару на сервер | campbell | Скриптовые языки администрирования Windows | 1 | 10-11-2011 09:59 | |
MySQL - Автозамена строки из другой строки - trigger? procedure ? | BugZZ | Программирование и базы данных | 0 | 18-09-2009 09:51 | |
Вытащить видео из AVI | Karantin | Видео и аудио: обработка и кодирование | 10 | 05-05-2009 18:55 | |
[решено] Как вырезать кусок звуковой дорожки из mkv-файла без потери качества? | ALEXEY_DFD | Видео и аудио: обработка и кодирование | 4 | 22-10-2008 09:33 |
|