Страница 3 из 3
Добавлено: Сб окт 09, 2010 21:52
Tol!k
Batya
Скрипт не работает, если в пути к файлам есть уникодные символы.
Ошибка: Требуется объект: ''
Код: 800A01A8
Нельзя исправить?
PS
В именах и в буфере уникода нет (и не будет)
Добавлено: Вс окт 10, 2010 13:08
Samwatas
Хочешь, можешь сделать консольную утилиту, которая будет выдавать в консоль содержимое буфера обмена, предварительно заменяя запрещённые символы
Код: Выделить всё
ConsoleWrite(StringRegExpReplace(StringStripWS(StringStripCR(ClipGet()),3),'[\\/:*?"<>|]+','_'))
Просто откомпилируй в екзе с помощью Aut2exe, поставив галочку "Console".
Добавлено: Вс окт 10, 2010 13:13
Tol!k
Не, это умеет сам скрипт:
Код: Выделить всё
'Массив недопустимых символов. Заменяем их указанным ниже символом
CharArr = Array(Chr(10), Chr(13), "\", "/")
У меня проблема в китайских и японских иероглифах в названиях папок.
Добавлено: Вс окт 10, 2010 14:01
Samwatas
Я имел в виду что, имея консольную утилиту, ты мог бы выполнять задачи, выполняемые скриптом, при помощи своих любимых батников. Но раз речь идёт о иероглифах в названии папок, то я не знаю, способны ли батники с таким работать.
Добавлено: Вс окт 10, 2010 14:18
Tol!k
Если
Batya не победит иероглифы, я подумаю над батником
ЗЫ
Проблема обойдена заменой параметров на %F
Добавлено: Пн окт 11, 2010 10:07
Batya
Tol!k
Как я понимаю, раз проблема решилась использованием %F, у тебя уникод в путях, а не в именах файлов.
Более корректно будет использовать %WL и в скрипте поменять строку
Код: Выделить всё
For Each F In Split(FSO.OpenTextFile(FileList, 1, False).ReadAll, vbNewLine)
на
Код: Выделить всё
For Each F In Split(FSO.OpenTextFile(FileList, 1, False, -1).ReadAll, vbNewLine)
Добавлено: Пн окт 11, 2010 18:00
Tol!k
Batya, ещё раз спасибо.