![]() |
Декодировать URL кириллицу в Bat файле.
Добрый вечер!
Занимаюсь разработкой БД для использования в нашей организации. Суть базы данных такая, что с браузера должен работать переход на локальную папку пользователя. Но к сожалению браузеры из за политики безопасности эту функцию закрыли на прочь. Я нашел в интернете альтернативный вариант, как этот запрет обойти: Переход по ссылке с сайта: Код:
<a href="myproto://C:/My Folder/123">открыть папку</a> Код:
Windows Registry Editor Version 5.00 Выполняемый bat файл на компьютере пользователя, который должен открывать папку в ссылке: Код:
@echo off |
БД в организации, зависящая от огромного размера дыры в безопасности, когда браузер может открывать локальные каталоги, и от батников - это сильно.
А потом говорят - переходите на отечественное ПО. А оно всё сплошь вот такое - из костылей и пластилина. |
Цитата:
|
artemleb, Через echo надо смотреть что там на вход батнику подаётся.
|
Цитата:
|
artemleb, вот потому-то пакетным файлам там не место.
Скрытый текст
*.reg
Код:
Windows Registry Editor Version 5.00 0001.js
Код:
sFolder = decodeURI(WScript.Arguments.Item(0)).replace('myproto:\/\/', '').replace('\/', ''); 0001.html
Код:
<html> P.S. И в целом коллега DJ Mogarych абсолютно прав. |
artemleb, Фраза "Занимаюсь разработкой БД для использования в нашей организации." наводит на мысли, что вам доступны более адекватные способы решения этой задачи, чем использование батников.
Программа минимум в рамках имеющегося батника -- использовать утилиту-перекодировщик для строки с url (таких не знаю, но они наверняка существуют) Но лучше или нормальное windows-приложение или скрипт на локальном вебсервере. |
Цитата:
P.S. Ваш способ работает, благодарю за помощь!!! |
artemleb, за использование myproto следовало бы настучать по рукам (правила форума запрещают эксплойты и иже с ними, так что довольствуйтесь лишь сухой констатацией факта небезопасности использования сего). Во-вторых, что Apache, что nginx вполне дружат с кириллицей (правильно ли ли вас понимаю, у вас сервачок?), - прописывается все в конфигах. В-третьих, командный язык никогда не предназначался для решения сложных задач, для этого уже более десятка лет существует PowerShell (и прочие интерпретируемые языки вроде Perl или Python - и вовсе динозавры, к слову), а с учетом, что для PowerShell есть bindings различных СУБД, то проблема озвученная здесь проблемой-то не является. Но раз уж вы любитель
Код:
pwsh -nop -c [Uri]::UnescapeDataString('C:\%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0') Код:
C:\папка |
Время: 23:27. |
Время: 23:27.
© OSzone.net 2001-