Создание кнопки автоматического переименования

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

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

Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Batya
Скрипт не работает, если в пути к файлам есть уникодные символы.
Ошибка: Требуется объект: ''
Код: 800A01A8
Нельзя исправить?

PS
В именах и в буфере уникода нет (и не будет)
Samwatas
Сообщения: 95
Зарегистрирован: Сб сен 12, 2009 20:26

Сообщение Samwatas »

Хочешь, можешь сделать консольную утилиту, которая будет выдавать в консоль содержимое буфера обмена, предварительно заменяя запрещённые символы :?

Код: Выделить всё

ConsoleWrite(StringRegExpReplace(StringStripWS(StringStripCR(ClipGet()),3),'[\\/:*?"<>|]+','_'))
Просто откомпилируй в екзе с помощью Aut2exe, поставив галочку "Console".
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Не, это умеет сам скрипт:

Код: Выделить всё

'Массив недопустимых символов. Заменяем их указанным ниже символом 
CharArr = Array(Chr(10), Chr(13), "\", "/")
У меня проблема в китайских и японских иероглифах в названиях папок.
Samwatas
Сообщения: 95
Зарегистрирован: Сб сен 12, 2009 20:26

Сообщение Samwatas »

Я имел в виду что, имея консольную утилиту, ты мог бы выполнять задачи, выполняемые скриптом, при помощи своих любимых батников. Но раз речь идёт о иероглифах в названии папок, то я не знаю, способны ли батники с таким работать.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Если Batya не победит иероглифы, я подумаю над батником :lol:

ЗЫ
Проблема обойдена заменой параметров на %F
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение 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)
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Batya, ещё раз спасибо.
Ответить