Запуск скрипта c github с параметрами
Запускаю скрипт powershell через файл .bat
Код:
@echo off Если запускать напрямую через терминал powershell, то получилось передать параметры вот так Код:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-Expression "& { $(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/test/main/test.ps1') } -param1 -param2 -param3" |
а почему же именно через бат ? объясните
на двух стульях сложно усидеть |
Для меня это просто удобнее, запускать различные скрипты с гитхаба через двойной клик по файлу
|
На скрипт Powershell можно создать ярлык и запускать его точно так же.
Код:
powershell -f "C:\temp\script.ps1" -executionpolicy bypass |
DJ Mogarych,
скрипт .ps1 находится на гитхабе |
Создайте .ps1 с тем, что вы запускаете через терминал PS, и сделайте на него ярлык.
|
-Command одной строкой надо, а там две получается. Видимо нужно убрать две " в середине (где "; " оставить ; ).
|
Sham,
убрал Код:
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}; & {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/test/main/test.ps1' | Invoke-Expression}" |
вот так например
Код:
powershell.exe -executionpolicy bypass -command "&{ write-host ('processing arguments: {0}' -f ($args -join ',' )) }" a b c d Код:
processing arguments: a,b,c,d |
Serguei Kouzmine,
подскажите пожалуйста как это все соединить ? с предыдущим моим постом |
запустить любимый тексторый редактор и написать код :- )
кто же знает какие аргументы просит скрипт который вы скачиваете из враждебного интернета и запускаете в mac brew style (вероятно этим хитроумно обходя наивную систему информационной безопасности места работы) когда это вскроется - найдут всех так что вы уж сами |
Вы передаёте параметры в script block и это работает, а выше уже он изменён на пайп внутри блока. Нужно типа этого: "&{...} -param1 -param2 -param3" | Invoke-Expression
|
Sham,
получилось так Код:
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}; &{Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/test/main/test.ps1'} -param1" | Invoke-Expression |
потому что опять синтаксическая ошибка в one-liner'е
скорее всего вам надо не "копипастить" а творчески перерабатывать фрагменты кода которые вам предлагают исключтельно для ознакомления и без каких бы то ни было гарантий |
вся команда должна быть в кавычках, а двойные кавычки внутри дублируются. Вроде так
Код:
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}; ""& { $(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/test/main/test.ps1') } -param1 -param2 -param3"" | Invoke-Expression" |
Цитата:
to pass parameters have to include entire "$command -param1 $param1 -param2 $param2 ..." line in a string and then pass that string to the Command parameter. https://adamtheautomator.com/invoke-expression/ |
значение можно передать в одинарных кавычках -param1 'с пробелом'. Если в двойных, то нужно двойное экранирование -param1 """"с пробелом""""
|
Sham,
заработало, только нужно еще добавить кавычек, а то была ошибка "В строке отсутствует завершающий символ" Код:
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}; """"& { $(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/test/main/test.ps1') } -param1 -param2 -param3"""" | Invoke-Expression" |
Время: 14:39. |
Время: 14:39.
© OSzone.net 2001-