[wdx] WinScript Advanced Content Plugin (x86\x64) (new)

Обсуждение только плагинов и утилит для Total Commander.

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

Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Исправил пример: уже какое-то время в основном пишу на Lua, привык, что нумерация в массивах идёт с 1.

Ну, мы даже не знаем, с какими параметрами запускаете...:)) В случаях ругани проще отдельно, навтыкав WScript.Echo, запустить скрипт и посмотреть, что и где.
Split не может работать криво, а в случае неудачи возвращает все, что было передано, в первую ячейку, т.е. в A(0), и как минимум ваш разделитель там будет.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

А автор здесь вообще не появляется? Нашел ошибку. Плагин спотыкается на кривых именах файлов, типа "День любви" (1990).mp4. Наверное можно этот вопрос решить через скрипт, но хотелось-бы получить исправление в самом плагине.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig
Плуг не поддерживает Unicode. К сожалению, сам столкнулся с таким какое-то время назад.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Да, там именно какой-то юникодовский символ. Хотел просто через регэксп удалить его. Но нет. Уже на самом регулярном выражении ошибка выдается. Интересно, как-то можно хотя-бы выйти из скрипта без вывода ошибки?
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig
Проще заранее удалить юникодные символы из имени файла(ов), если только они не представляют какой-то эстетский интерес :) Я обычно использую [=wdx_translit.ANSI Name] в групповом переименовании, да и все - нет проблемы ))
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Вообще-то я делал скрипт для winscriptADV, который выдавал мне в строку все юникодные символы в имени файлов и папок, и все работало. Так что поддерживает Юникод. А я все-таки не понял имя файла, кавычки не поддерживаются файловой системой, а вот кавычки-елочки вполне могут стоять, но по вашему примеру непонятно. Там елочки? И что вы хотите вывести и каким скриптом?
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Monarch-LFV писал(а):Вообще-то я делал скрипт для winscriptADV, который выдавал мне в строку все юникодные символы в имени файлов и папок, и все работало. Так что поддерживает Юникод.
Не факт. Выдать юникодные символы и обработать их, две большие разницы.
Monarch-LFV писал(а):А я все-таки не понял имя файла, кавычки не поддерживаются файловой системой
И что? Есть множество способов создать такой файл.
Monarch-LFV писал(а):по вашему примеру непонятно. Там елочки?
Там какой-то символ в виде двойных кавычек. Но если скопировать имя файла, вставить в АкельПад и попытаться сохранить в 1251, он говорит, что символ будет потерян.
Monarch-LFV писал(а):И что вы хотите вывести и каким скриптом?
Что я хочу вывести и каким скриптом, я выкладывал. Но так как это никому не нужно, я это удалил.
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

AkulaBig писал(а):Что я хочу вывести и каким скриптом, я выкладывал. Но так как это никому не нужно, я это удалил.
Давайте не будем общаться загадками, я не помню что вы писали, а в последствии удалили. Если ждете каких-то советов, то может быть стоит давать конструктивные ответы?
Я вам уже говорил, с юникодными именами файлов у плагина winscriptADV проблем нет. У меня много скриптов с ним работает.
Там какой-то символ в виде двойных кавычек. Но если скопировать имя файла, вставить в АкельПад и попытаться сохранить в 1251, он говорит, что символ будет потерян.
Попробую позже, сейчас не за компьютером.

Добавлено спустя 8 минут:

Еще может быть если вы используете стороннюю консольную утилиту или библиотеку, то надо проверить, а может ли она обрабатывать юникодные имена. У меня бывали случаи, когда сама консольная утилита не поддерживала Юникод.
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Monarch-LFV писал(а): Попробую позже, сейчас не за компьютером.
Вы не сможете попробовать. Ведь сюда вставлено конвертированное имя. Форум юникод не поддерживает.
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение 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
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Победил кривые имена. Если завернуть au3-скрипт в vbs-скрипт, то все отрабатывает отлично.
Теперь возникает вопрос:
Skif_off писал(а):Если скрипт AutoIt запускать из vbs-скрипта, то первый должен читать имя файла из $CmdLine[1] и писать результат в ConsoleWrite
А как вывести несколько результатов? Просто перечислить их в ConsoleWrite через запятую?
И как их превратить в vbs в несколько content?
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Monarch-LFV писал(а):Вставьте имя в word, выделите символ кавычек и нажмите Alt+x. Покажет код символа.
Код символа FF02
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение 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 Telo - Ai Se Eu Te Pego.mp4, в результате чего файл не может быть найден и обработан скриптом.

Как-то так :)
AkulaBig
Сообщения: 639
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

Я полностью разобрался и с выводом нескольких значений. Остается дописать скрипт до конца.
Orion9 писал(а):в результате чего файл не может быть найден и обработан скриптом.
А попробуйте запускать через vbs-скрипт. У меня получилось. Теперь глотает любые имена.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig
Верните свой удаленный скрипт, хочется на него взглянуть :)

Добавлено спустя 5 минут:
А попробуйте запускать через vbs-скрипт. У меня получилось. Теперь глотает любые имена.
Я примерно понял технику: запустить ahk из vbs, передав ему имя. Может и попробую когда, если возникнет потребность :wink:
Ответить