Могу ли я, чтобы скрипты вызывали друг друга? Как упаковщик позволяет составлять много скриптов? - PullRequest
0 голосов
/ 17 февраля 2020

Я не нашел никаких примеров этого, поэтому не уверен, что это возможно

Я хочу иметь служебные сценарии, которые используются другими сценариями упаковщика. Могут ли скрипты вызывать друг друга напрямую?

Например, если внутри script1.ps1 он вызывает script2.ps1 (через относительный путь), он там будет? Будет ли упаковщик выгружать оба файла в одно и то же место, и сценарии смогут получать доступ друг к другу?

{
  "script": "./script1.ps1",
  "type": "powershell"
},
{
  "script": "./script2.ps1",
  "type": "powershell"
}

Что, если они будут у меня в папках diff, подобных этой, я смогу получить доступ к script2 внутри script1 как ./../subdir/script2.ps1?

{
  "script": "./otherdir/script1.ps1",
  "type": "powershell"
},
{
  "script": "./subdir/script2.ps1",
  "type": "powershell"
}

1 Ответ

1 голос
/ 29 февраля 2020

Да, вы, безусловно, можете это сделать, хотя я не уверен, что реальное преимущество заключается в выполнении двух положений Powershell, как вы уже есть.

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

{
    "type": "file",
    "source": "./script2.ps1",
    "destination": "C:/Windows/Temp/script2.ps1"
},
{
    "script": "./script1.ps1",
    "type": "powershell"
}

Позвонить script2 из script1 и затем удалить его:

& C:\Windows\Temp\script2.ps1
Remove-Item C:\Windows\Temp\script2.ps1
...