Главная

Friday, 1 June 2018

Вызов функции Powershell из внешнего скрипта.

Всем привет.

Себе напоминаю и вам подсказываю. Часто в Powershell необходимо вызвать скрипт или отдельную функцию из другого файла.

Если мы уже находимся в папке где находится скрипт test1.ps1 то пишем:
powershell -ExecutionPolicy bypass -File test1.ps1

Если мы находимся в другом месте и указание полного пути к файлу нас устраивает:
powershell -ExecutionPolicy bypass -File D:\PS\test1.ps1

Вызов функции Get-OfficeVersion из файла RemoveOffices.ps1 который находится тут же:
powershell -ExecutionPolicy bypass -command "& {. .\RemoveOffices.ps1; Get-OfficeVersion | fl}"

Это была командная строка. Теперь как тоже самое сделать из другого скрипта. В этом случае в него помещается две строчки кода.

Для одной папки так:
.\RemoveOffices.ps1
Get-OfficeVersion

А вот так если файл RemoveOffices.ps1, находящийся во вложенной папке Scripts:
. .\Scripts\RemoveOffices.ps1
Get-OfficeVersion

А вот так если папка с скриптами находится выше на ступень от скрипта, который ими пользуется
. ..\Scripts\RemoveOffices.ps1
Get-OfficeVersion

Запомнили? Молодцы.


2 comments:

  1. PS D:\Coding\ps1\AzMailTest> gc .\2.ps1
    function getr (){ return 2}
    PS D:\Coding\ps1\AzMailTest> .\2.ps1
    PS D:\Coding\ps1\AzMailTest> getr
    getr: The term 'getr' is not recognized as a name of a cmdlet, function, script file, or executable program.
    Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

    ReplyDelete
  2. . .\N1.ps1
    if your current folder is the same as the location of the N1.ps1 file.

    ReplyDelete

А что вы думаете по этому поводу?