Страница 1 из 1
Как отключить упрощение символов для скриптов tcwshelp ?
Добавлено: Сб авг 30, 2025 23:26
Baltazar
Есть спецы по tcwshelp/vbs ? Недавно наткнулся на то, что скрипт обрабатывающий скопированные пути файлов/папок "ломает" пути с юникодом внутри (и с умляутами в частности) заменяя (упрощая) на схожие символы и превращая конечный результат в невалидный. Пробовал наводить справки у нейросетей, но без толку. Дипсик даёт советы по обычному vbs, но как выправить ситуацию в tcwshelp он не знает и начинает фантазировать. При использовании скрипта (обрезал по максимуму для упрощения)
Код: Выделить всё
Option Explicit
Dim TCS, Clip, REx, Arr, A, i
Set TCS = CreateObject("TCScript.Helper")
TCS.SendCommand "cm_CopyFullNamesToClip", True
Clip = TCS.GetTextFromClip
Arr = Split(Clip, vbNewLine, -1, 1)
Clip = Join(Arr, vbNewLine)
TCS.SetTextToClip(Clip)
Set TCS = Nothing
WScript.Quit
Файл/папка с именем вида "ÜLTRA RAPTÖR" превращается в "ULTRA RAPTOR". Как прекратить подобное упрощение символов ?
Добавлено: Вс авг 31, 2025 03:45
Monarch-LFV
Baltazar
Не подскажу по поводу tcwshelp, так как не использую его, но это можно сделать просто в VBS с помощью стандартной утилиты clip, входящей в состав Windows.
Юникод сохраняется.
Код: Выделить всё
' Копировать в буфер полные пути к файлам
' Параметры: %WL
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd /c chcp 65001&&type " & WScript.Arguments(0) & "| clip", 0, True
PS. Также не понял, зачем в вашем скрипте вы вначале разбиваете построчно, а потом сразу же снова объединяете массив в переменную.
Добавлено: Вс авг 31, 2025 04:26
Baltazar
Monarch-LFV писал(а):PS. Также не понял, зачем в вашем скрипте вы вначале разбиваете построчно, а потом сразу же снова объединяете массив в переменную.
Там обработка путей с FTP и из wfx плагинов с заменой на реальные пути на устройствах. Список разбирается, производится замена и всё возвращается назад. С %L листами были заморочки (то ли по линии ftp-ссылок, то ли ещё что, давно было, но помню, что от их использования я отказался и использовал обработку из буфера обмена по cm_CopyFullNamesToClip).
Добавлено: Вс авг 31, 2025 04:57
Monarch-LFV
Baltazar
Сейчас протестировал на плагине CloudMailRu.wfx, вроде все нормально копируется без заморочек.
Добавлено: Вс авг 31, 2025 06:48
Baltazar
Monarch-LFV, А FTP ? ftp - пути передаются с адресами и портами в списке ? У меня десктопа нет сейчас под рукой, чтобы проверить.
Добавлено: Вс авг 31, 2025 08:01
Monarch-LFV
Baltazar
FTP не пользуюсь от слова совсем, поэтому протестировать, к сожалению, не смогу.
Добавлено: Вс авг 31, 2025 23:13
Baltazar
Monarch-LFV, Собственно перепроверил. Да. Это именно та "заморочка", из-за которой я не использовал %L (и схожие) списки. Для FTP отдаются пути без порта и сервера. А именно по ним и ведётся обработка. Вместо
Код: Выделить всё
ftp://192.168.1.1:11121/media/abc.txt
ftp://192.168.1.1:11121/media/def.txt
списком возвращаются бесполезные
поэтому я и использовал tcwshelp и "cm_CopyFullNamesToClip"
