Mam dwa pliki PowerShell. a.ps1 i b.ps1.
W punkcie centralnym w a.ps1 chcę rozpocząć wykonywanie kodu w b.ps1 i zakończyć skrypt a.ps1.
Jak to zrobić, biorąc pod uwagę, że oba pliki znajdują się w tym samym folderze?
powershell
window
GibboK
źródło
źródło
Odpowiedzi:
Czy jest w porządku, jeśli b.ps1 jest wykonywany w nowym procesie Power Shell? Jeśli tak, poniższe czynności powinny zrobić, co opisujesz.
„Wywołanie-Wyrażenie” wykonuje się w tym samym procesie, ale czeka na zakończenie b.ps1.
źródło
W a.ps1
sposób, w jaki wywołujesz inne programy
źródło
mam to z innego artykułu, ale można go tutaj zastosować: dzięki ( /programming//users/3905079/briantist )
Po pierwsze, jeśli chcesz wykonać wiele połączeń w jednej sesji ze zdalnym komputerem, najpierw utwórz PSSession:
Następnie użyj tej sesji we wszystkich kolejnych połączeniach:
} Następnie zamknij sesję, gdy skończysz:
także jeśli nie wiesz dokładnie, jaki będzie ten skrypt, ale wiesz, gdzie zaczyna się twój skrypt, możesz to zrobić:
(to moje)
źródło
Użyj magicznej zmiennej $ PSScriptRoot, aby odnieść się do bieżącego katalogu. Następnie wywołaj skrypt B ze znakiem ampersand („operator połączenia”):
Jeśli chcesz zachować zmienne z B w zakresie A, możesz uruchomić skrypt za pomocą operatora Dot sourcing:
źródło