2

Итак, я делаю "Ассистент", полностью основанный на командной строке. Недавно я решил перейти с хостинга файлов на One-drive на GitHub. Я сделал крошечные ссылки .cc, так что было бы легко изменить окончательный URL без необходимости изменения самого пакетного файла.

Но, как только я перенаправил URL-адреса tiny.cc в свои файлы на GitHub, я получил ошибки. Я использовал powershell -Command Invoke-WebRequest http://tiny.cc/sanchitaiexdown -OutFile C:\Users\%USERNAME%\ai\exdown.exe

И пришло с ошибкой не удалось создать SSL/TLS Secure Channel. После небольшого исследования я обнаружил, что должен был использовать эту команду перед ней,

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Проблема с этим состояла в том, что это не могло быть запущено в партии (я хочу остаться в партии). Так что я попробовал BitsAdmin, и это также подвело меня.

Итак, есть ли способ, которым я могу сделать эту работу в пакетном режиме. Я в порядке, если нужен внешний exe-файл, но это может быть только командная строка и установка не требуется.

Спасибо

1 ответ1

1

Вы можете запускать команды PowerShell через пакет, помещая логику PowerShell в динамически создаваемый сценарий PowerShell с помощью команды echo , а затем можно запустить сценарий PowerShell, чтобы запустить логику и делать все, что вам нужно, как в примере ниже.


Пример скрипта

@ECHO ON

:PowerShell
SET PSScript=%temp%\~tmpDlFile.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls">>"%PSScript%"
ECHO Invoke-WebRequest "http://tiny.cc/sanchitaiexdown" -OutFile "C:\Users\%USERNAME%\ai\exdown.exe">>"%PSScript%"

SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
EXIT

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .