Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить одну фразу (кодировка файла UTF-8)

Ответить
Настройки темы
CMD/BAT - [решено] Удалить одну фразу (кодировка файла UTF-8)
njg njg вне форума

Новый участник


Сообщения: 46
Благодарности: 3

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar strings.rar
(18.4 Kb, 9 просмотров)
Прощу помощи. Нужно найти фразу в исходном файле и удалить её. Файл в UTF-8. Как не пытаюсь, все кодировку нарушаю.
Файл прикрепил. Нужно убрать фразу "Для разблокировки проведите пальцем по экрану".
Можно на VBS.

Также подскажите как можно менять фразу на другую, вдруг пригодиться...

Отправлено: 08:12, 03-01-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


njg, попробуйте так:
Код: Выделить весь код
Option Explicit

Dim strPath2XML
Dim objXMLDOMNode

With WScript.CreateObject("Msxml2.DOMDocument")
	.async = False
	.setProperty "SelectionLanguage", "XPath"
	
	strPath2XML = "E:\Песочница\0023"
	
	If .load(strPath2XML & "\strings.xml") Then
		For Each objXMLDOMNode In .selectNodes("*/string[. = 'Для разблокировки проведите пальцем по экрану']")
			objXMLDOMNode.removeChild objXMLDOMNode.firstChild
		Next
		
		.save strPath2XML & "\strings2.xml"
	End If
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:55, 03-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Вариант с POSH:
Код: Выделить весь код
$xmlfile = gi ".\strings.xml"

$xml = new-object xml
$xml.load($xmlfile.fullname)
$xml.resources.string | ? { $_.name -match "lockscreen_unlock_guide_text" } | % { $_."#text" = '' }
$xml.save($xmlfile.fullname)
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:35, 03-01-2012 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Вариант с Posh:

Код: Выделить весь код
(gc strings.xml -enc utf8) -notmatch 'Для разблокировки проведите пальцем по экрану' | out-file result.xml -enc utf8
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:04, 03-01-2012 | #4


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Kazun, так наверное удалится вся строка, а не "фраза"
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:18, 03-01-2012 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Foreigner,замените на replace в чем проблема.

Отправлено: 21:27, 03-01-2012 | #6

njg njg вне форума Автор темы

Новый участник


Сообщения: 46
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, ваш вариант мне понравился, простой и без доп. компонентов. Но только он не работает. Вернее коверкает исходный файл. Некоторые теги были изменены и пропал закрывающий тег за вырезанной фразой.
А нельзя ли на VBS пробежаться по xml файлу как по обычному тексту у вырезать лишнее?

Отправлено: 00:27, 04-01-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


njg, у меня получается результирующий файл следующего вида:

* в нём приведены к стандарту XML некоторые некорректные тэги (наличествующие символы «>» в тексте заменены на соответствующие коды);

* тэг:
Код: Выделить весь код
    <string name="lockscreen_unlock_guide_text">Для разблокировки проведите пальцем по экрану</string>
после удаления текста выглядит так:
Код: Выделить весь код
	<string name="lockscreen_unlock_guide_text"/>
— это никак не «пропадание закрывающего тэга», а стандартный для XML способ;

* отступы-пробелы заменены на табуляцию.

Результирующий файл проходит проверку на валидность в XML Validator. Что не так?

Последний раз редактировалось Iska, 04-01-2012 в 03:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:15, 04-01-2012 | #8

njg njg вне форума Автор темы

Новый участник


Сообщения: 46
Благодарности: 3

Профиль | Отправить PM | Цитировать


Спасибо! Вставил пропатченный файл в прошивку, прошил телефон, все работает как нужно

Отправлено: 04:49, 05-01-2012 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить одну фразу (кодировка файла UTF-8)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Вставить имя файла в текстовый файл (UTF-8 without BOM) Jahnhoy Скриптовые языки администрирования Windows 11 19-09-2011 17:39
CMD/BAT - [решено] Преобразование кодировки файла utf-8 в Windows-1251 sea707 Скриптовые языки администрирования Windows 7 06-06-2011 08:32
Разное - UTF-8 как кодировка Windows по-умолчанию DreamTheater Microsoft Windows 7 0 06-09-2010 14:29
CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE crashtuak Скриптовые языки администрирования Windows 11 20-08-2009 11:57
Удалить одну из ОС schwu1 Microsoft Windows 95/98/Me (архив) 5 12-02-2004 16:06




 
Переход