zkrvndm
@zkrvndm
Архитектор решений

Можно ли через js-файл на рабочем столе Windows загрузить файл?

В продолжение этой темы. Насколько я знаю, все версии Windows из под коробки поддерживают исполнение сценариев JavaScript из файла. Ранее я никогда не интересовался этим вопросом, но если я захочу посредством JavaScript-файла со сценарием загрузить файл на рабочий стол пользователя, смогу ли я это сделать? Где, что можно почитать на эту тему?
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
zkrvndm
@zkrvndm Автор вопроса
Архитектор решений
Нашел способ, можно через .bat файл открывать ссылку на загрузку документа в браузере по умолчанию и при этом фоном отслеживать в цикле папку Загрузки, как только в ней появляется ожидаемый нами файл, открываем Загрузки в проводнике и выделяем сам файл.

Пример кода для будущих поколений:
@echo off
chcp 65001
if not exist "%Userprofile%\Downloads\word.docx" start "" "https://site.ru/word.docx"
cmd/c for /l %%i in () do @(if exist "%Userprofile%\Downloads\word.docx" explorer /select, "%Userprofile%\Downloads\word.docx"^& exit/b)^&^>nul timeout /t 1 /nobreak
exit

Само с собой, ссылку и название файла нужно заменить на свои. Файл .bat должен иметь кодировку UTF-8!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Возможны два варианта js и vb js довольно ущербный, но вполне рабочий для вашей задачи.
https://docs.microsoft.com/en-us/previous-versions...

Но сейчас рекомендуют PowerShell
Вот вам пример

сохраните как download.ps1
$wc = New-Object System.Net.WebClient

$wc.DownloadFile('https://img.photographyblog.com/reviews/sony_a6100/sample_images/sony_a6100_01.arw', 'samples/sony_a6100_01.arw')
Ответ написан
@rPman
Уже не осталось инсталляций windows в которых не было бы .net framework, а это значит из коробки в системе готовый компилятор .net - c#, js# и vb# со всей мощностью .net, т.е. можно скомпилировать exe файл и запустить его.

Недостаток - в путях они не прописаны а каталог зависит от установленной версии, т.е. придется сторонними способами вытаскивать этот путь из реестра или искать самому.

Например C:\Windows\Microsoft.NET\Framework64\v4.0.30319\jsc.exe (там есть каталоги для x86 версии а так же по каталогу для каждой версии .net)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы