Автозамена части строки в XML на имя родительского каталога

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Добавил сообщение о завершении работы скрипта, если Вы его получили - значит wscript.exe работает.
Cyrus
Сообщения: 11
Зарегистрирован: Вт апр 12, 2011 14:48
Откуда: РФ

Сообщение Cyrus »

Сообщение теперь выскакивает ("Готово, кол-во найденных файлов - 0").
Заметил ещё одну странную вещь. Если заменить "Хлупикино" на символ "<", то тогда делается bak-файл (раньше этого не происходило), но целевой файл становится пустым и выскакивает сообщение от Windows Script Host с указанием ошибки в 27-ой строке, на 7-ом символе
Перед строкой "ts.Write(Replace(st, texttoreplace, fso.GetFile(f).ParentFolder.Name))").

Код ошибки - 800A0005
Выполнение скрипта на этом останавливается.
Cyrus
Сообщения: 11
Зарегистрирован: Вт апр 12, 2011 14:48
Откуда: РФ

Сообщение Cyrus »

Lev,
А не может быть это как-то связано с кодировкой самого текста xml?
У скрипта кодировка - 1251 Windows ANSI (кириллица), а у xml - Unix UTF-16 LE
Может быть, в этом проблема?
Cyrus
Сообщения: 11
Зарегистрирован: Вт апр 12, 2011 14:48
Откуда: РФ

Сообщение Cyrus »

Кажется, проблема именно в этом!
Сейчас сохранил xml в другой кодировке (ANSI)и вуяла - скрипт начал его "видеть" и сработал, как было Вами задумано.
Lev, а Вы не подскажете, как этот скрипт переделать так, чтобы он работал в кодировке UTF-16?
Я попытался его перекодировать, но после этого он работать перестал.
Сами целевые файлы тоже можно перекодировать в ANSI, но тогда их потом так же придётся скопом перекодировать обратно в UTF-16, что, со своей стороны задачу ещё больше усложнит (из-за необходимости повторного раскладывания файлов по миллиону разных папок).
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Странно, не замечал в присланных файлах никакого UTF-16, кроме записи в заголовке. Сами текстовки в обычном win-1251. У меня работает без переделок. Можно попробовать искать что-то типа "Хлупикино", но боюсь вместо имён папок подставившихся в ANSI у Вас выйдет мусор в UTF. Нужно будет их дополнительно кодировать в UTF, но мне лень искать код для этого.
Ответить