Страница 16 из 20
Добавлено: Сб ноя 02, 2024 01:41
Skif_off
Исправил пример: уже какое-то время в основном пишу на Lua, привык, что нумерация в массивах идёт с 1.
Ну, мы даже не знаем, с какими параметрами запускаете...

) В случаях ругани проще отдельно, навтыкав
WScript.Echo, запустить скрипт и посмотреть, что и где.
Split не может работать криво, а в случае неудачи возвращает все, что было передано, в первую ячейку, т.е. в A(0), и как минимум ваш разделитель там будет.
Добавлено: Пн ноя 11, 2024 12:22
AkulaBig
А автор здесь вообще не появляется? Нашел ошибку. Плагин спотыкается на кривых именах файлов, типа "День любви" (1990).mp4. Наверное можно этот вопрос решить через скрипт, но хотелось-бы получить исправление в самом плагине.
Добавлено: Пн ноя 11, 2024 16:19
Orion9
AkulaBig
Плуг не поддерживает Unicode. К сожалению, сам столкнулся с таким какое-то время назад.
Добавлено: Пн ноя 11, 2024 18:35
AkulaBig
Да, там именно какой-то юникодовский символ. Хотел просто через регэксп удалить его. Но нет. Уже на самом регулярном выражении ошибка выдается. Интересно, как-то можно хотя-бы выйти из скрипта без вывода ошибки?
Добавлено: Пн ноя 11, 2024 23:41
Orion9
AkulaBig
Проще заранее удалить юникодные символы из имени файла(ов), если только они не представляют какой-то эстетский интерес

Я обычно использую [=wdx_translit.ANSI Name] в групповом переименовании, да и все - нет проблемы ))
Добавлено: Вт ноя 12, 2024 00:11
Monarch-LFV
Вообще-то я делал скрипт для winscriptADV, который выдавал мне в строку все юникодные символы в имени файлов и папок, и все работало. Так что поддерживает Юникод. А я все-таки не понял имя файла, кавычки не поддерживаются файловой системой, а вот кавычки-елочки вполне могут стоять, но по вашему примеру непонятно. Там елочки? И что вы хотите вывести и каким скриптом?
Добавлено: Вт ноя 12, 2024 04:48
AkulaBig
Monarch-LFV писал(а):Вообще-то я делал скрипт для winscriptADV, который выдавал мне в строку все юникодные символы в имени файлов и папок, и все работало. Так что поддерживает Юникод.
Не факт. Выдать юникодные символы и обработать их, две большие разницы.
Monarch-LFV писал(а):А я все-таки не понял имя файла, кавычки не поддерживаются файловой системой
И что? Есть множество способов создать такой файл.
Monarch-LFV писал(а):по вашему примеру непонятно. Там елочки?
Там какой-то символ в виде двойных кавычек. Но если скопировать имя файла, вставить в АкельПад и попытаться сохранить в 1251, он говорит, что символ будет потерян.
Monarch-LFV писал(а):И что вы хотите вывести и каким скриптом?
Что я хочу вывести и каким скриптом, я выкладывал. Но так как это никому не нужно, я это удалил.
Добавлено: Вт ноя 12, 2024 05:08
Monarch-LFV
AkulaBig писал(а):Что я хочу вывести и каким скриптом, я выкладывал. Но так как это никому не нужно, я это удалил.
Давайте не будем общаться загадками, я не помню что вы писали, а в последствии удалили. Если ждете каких-то советов, то может быть стоит давать конструктивные ответы?
Я вам уже говорил, с юникодными именами файлов у плагина winscriptADV проблем нет. У меня много скриптов с ним работает.
Там какой-то символ в виде двойных кавычек. Но если скопировать имя файла, вставить в АкельПад и попытаться сохранить в 1251, он говорит, что символ будет потерян.
Попробую позже, сейчас не за компьютером.
Добавлено спустя 8 минут:
Еще может быть если вы используете стороннюю консольную утилиту или библиотеку, то надо проверить, а может ли она обрабатывать юникодные имена. У меня бывали случаи, когда сама консольная утилита не поддерживала Юникод.
Добавлено: Вт ноя 12, 2024 06:17
AkulaBig
Monarch-LFV писал(а):
Попробую позже, сейчас не за компьютером.
Вы не сможете попробовать. Ведь сюда вставлено конвертированное имя. Форум юникод не поддерживает.
Добавлено: Вт ноя 12, 2024 06:44
Monarch-LFV
Вставьте имя в word, выделите символ кавычек и нажмите Alt+x. Покажет код символа. Или в акелпаде есть плагин hex, внизу в отдельном поле показываются все коды выделенных символов.
Добавлено спустя 16 минут:
Попробуйте привязать этот скрипт (Unicode_In_Fullpath.vbs) к WinscriptADV:
Код: Выделить всё
' Script for WinScriptAdv content plugin
' Показывает юникодные символы (не ANSI) в полном пути к файлу/папке
on error resume next
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "[^\x00-\x7F\u0400-\u0451\u2116]"
objRegEx.Global = True
Set Matches = objRegEx.Execute(filename)
For Each Item In Matches
text=text & Item.Value
Next
content=text
В файле options.ini:
Код: Выделить всё
[Unicode_In_Fullpath]
; Показывает юникодные символы (не ANSI) в полном пути к файлу/папке
Script=Unicode_In_Fullpath.vbs
content=юникодные символы в полном пути к файлу/папке
extensions=*
FoldersPaths=1
Добавлено: Вт ноя 12, 2024 07:44
AkulaBig
Победил кривые имена. Если завернуть au3-скрипт в vbs-скрипт, то все отрабатывает отлично.
Теперь возникает вопрос:
Skif_off писал(а):Если скрипт AutoIt запускать из vbs-скрипта, то первый должен читать имя файла из $CmdLine[1] и писать результат в ConsoleWrite
А как вывести несколько результатов? Просто перечислить их в ConsoleWrite через запятую?
И как их превратить в vbs в несколько content?
Добавлено: Вт ноя 12, 2024 11:38
AkulaBig
Monarch-LFV писал(а):Вставьте имя в word, выделите символ кавычек и нажмите Alt+x. Покажет код символа.
Код символа FF02
Добавлено: Вт ноя 12, 2024 12:10
Orion9
Я вам уже говорил, с юникодными именами файлов у плагина winscriptADV проблем нет. У меня много скриптов с ним работает.
Безусловно, это было громкое утверждение с моей стороны, что плуг не поддерживает юникод

Надо было быть точнее и говорить только о своей проблеме, которую я
описывал пару страниц назад, а не за весь плагин, не разобравшись.
Я толком не пробовал запускать на нем vbs-скрипты, но сейчас переделал немного свой старый скрипт, который делал еще для script.wdx, и все работает:
Код: Выделить всё
[GetDrive]
Script=GetDrive.vbs
content=DriveName
content1=DriveType
content2=FileName
extensions=*
FoldersPaths=0
Код: Выделить всё
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
content = fs.GetDriveName(filename)
content1 = DriveType(content)
content2 = filename
Function DriveType(drvpath)
Dim fs, d, s, t
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(drvpath)
Select Case d.DriveType
Case 0: t = "Unknown"
Case 1: t = "Removable"
Case 2: t = "Fixed"
Case 3: t = "Network"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disk"
End Select
DriveType = t
End Function
set fs=nothing
В content2 нормально попадает юникодное имя Michel Tel
ó - Ai Se Eu Te Pego.mp4
Но с Autohotkey совсем другая история. Не смотря на то, что в справке к плагину говорится о поддержке передачи юникодных символов во внешние exe-интерпретаторы:
WinScriptAdv sends to global variable 'filename' (fixed name for all scripts and engines) a full path (long, unicode) to the file
По факту ее нет. Вместо этого создается временный файл WinScriptAdvFile_.ahk в формате ANSI, в котором, соответственно, юникодное имя файла ichel Tel
ó - Ai Se Eu Te Pego.mp4 теряется и становится обычным ANSI именем Michel Tel
o - Ai Se Eu Te Pego.mp4, в результате чего файл не может быть найден и обработан скриптом.
Как-то так

Добавлено: Вт ноя 12, 2024 12:14
AkulaBig
Я полностью разобрался и с выводом нескольких значений. Остается дописать скрипт до конца.
Orion9 писал(а):в результате чего файл не может быть найден и обработан скриптом.
А попробуйте запускать через vbs-скрипт. У меня получилось. Теперь глотает любые имена.
Добавлено: Вт ноя 12, 2024 12:19
Orion9
AkulaBig
Верните свой удаленный скрипт, хочется на него взглянуть
Добавлено спустя 5 минут:
А попробуйте запускать через vbs-скрипт. У меня получилось. Теперь глотает любые имена.
Я примерно понял технику: запустить ahk из vbs, передав ему имя. Может и попробую когда, если возникнет потребность
