|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
Всем доброго дня, в функции есть длинная строка с текстом скрипта для PowerShell. Можно как то выполнить этот текст скрипта через ShellApi напрямую из программы или передать в ShellExecute минуя сохранение текста скрипта в промежуточный файл? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 10:15 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
hlopotun, Непонятно только, при чём тут Dlephi?.. powershell.exe -?-Command Выполняет указанные команды (и любые параметры) как введенные в командной строке Windows PowerShell, а затем завершает работу, если не задан параметр NoExit. Значением параметра Command может быть "-", строка или блок сценария. Если Command имеет значение "-", текст команды считывается из стандартного ввода. Если значением Command является блок сценария, он должен быть заключен в фигурные скобки ({}). Вы можете указать блок сценария только при использовании PowerShell.exe в Windows PowerShell. Результаты блока сценария возвращаются родительской оболочке как десериализованные объекты XML, а не как активные объекты. Если значением Command является строка, параметр Command должен быть последним в команде, поскольку любой знак, введенный после него, интерпретируется как аргумент команды. При написании строки команды Windows PowerShell используйте следующий формат: "& {<команда>}", где кавычки отделяют строку, а оператор вызова (&) запускает выполнение команды. ПРИМЕРЫ: PowerShell -Command {Get-EventLog -LogName security} PowerShell -Command "& {Get-EventLog -LogName security}" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 10:38 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
alekcvp hlopotun, Непонятно только, при чём тут Delphi?.. ключ -command я видел, вся проблема в том что скрипт многострочный и имеет входящие параметры. Если из файла то запуск выглядит так: powershell.exe -executionpolicy bypass -File c:\Temp\ScriptFileName.ps1 -computername "PCName" -username "PCName\UserNAME" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 11:29 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
Всё, что можно написать на PowerShell, можно написать и непосредственно на Дельфи. Тебе надо разгребать старую проктостоматологию, а не накручивать слои новой. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 11:55 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Всё, что можно написать на PowerShell, можно написать и непосредственно на Дельфи. Тебе надо разгребать старую проктостоматологию, а не накручивать слои новой. я не против переписать этот скрипт на Delphi: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
но боюсь займёт это столько время сколько просто нет. И тот кто задания раздаёт ждать не станет. Я не архитектор и решения по разгребанию не принимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 12:20 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
hlopotunИ тот кто задания раздаёт ждать не станет. Я не архитектор и решения по разгребанию не принимаю. Тогда не выпендривайся и говнокодь сохранение этого скрипта в файл. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 12:26 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
hlopotun, чем объясняется желание отказаться от промежуточного файла со скриптом? Его же можно было бы удалять после отработки интерпретатором PowerShell'а так же порекомендую этот топик , думаю пригодится на следующем шаге ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 13:18 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
Кроик СемёнЕго же можно было бы удалять после отработки интерпретатором PowerShell'а Или даже использовать FILE_FLAG_DELETE_ON_CLOSE, но это же аффтар... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 13:27 |
|
Выполнить текст скрипта в PowerShell минуя промежуточный файл скрипта
|
|||
---|---|---|---|
#18+
hlopotun я не против переписать этот скрипт на Delphi: Что там сложного?.. Параметры выкидываешь, заменяешь их прямыми подстановками, т.е. тупо в начале сценария пишешь: Код: powershell 1. 2.
Ведь ты сам вызываешь сценарий и знаешь их значения заранее. А сам скрипт пишешь в одну строку, разделяя команды символом ';' и, при необходимости, экранируя служебные символы. Весь вопрос в его размере, я не помню есть там ограничения на размер командной строки или нет. И второй вариант, более сложный: Вызываешь скрипт с параметром '-command -' и стримишь ему сценарий на StdIn. Да, потрахаться придётся с отладкой, но ты же сам не ищешь лёгких путей 😃 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 14:07 |
|
|
start [/forum/topic.php?fid=58&msg=40102701&tid=2036968]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 411ms |
0 / 0 |