Как вы скачиваете файлы с Github через Batch?

525
user473470

Итак, я делаю «Ассистент», полностью основанный на командной строке. Недавно я решил перейти с хостинга файлов на 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-файл, но это может быть только командная строка и установка не требуется.

Спасибо

2
Ваш сокращенный URL-адрес не является https, GitHub поддерживает только безопасные соединения. Нет смысла заявлять, что вы поддерживаете TLS 1.0+, если вы не используете соединение https. Ramhound 5 лет назад 0
Я бы на самом деле запустил `[Net.ServicePointManager] :: SecurityProtocol =" tls12, tls11, tls "`, а затем команду `Invoke-WebRequest`, но вы можете запустить оба из них с помощью пакетного сценария, просто отлично. Pimp Juice IT 5 лет назад 0
@Ramhound Ссылка tiny.cc - это http, но ссылка идет на https. user473470 5 лет назад 0
@PimpJuiceIT Я только что попробовал это, и я обнаружил ошибку. Кроме того, я пробовал оригинальные команды в powershell, и они работают, но в пакетном режиме они не работают, и я хочу придерживаться пакетного режима. user473470 5 лет назад 0

1 ответ на вопрос

1
Pimp Juice IT

Команды 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 

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

Спасибо, я просто отключил @ECHO, чтобы скрипт выглядел чистым. user473470 5 лет назад 0
@ user473470 Это просто моя привычка, когда мне нравится видеть все эхом .... Я рад, что это сработало для твоих нужд !! Pimp Juice IT 5 лет назад 0