Всем привет.
Себе напоминаю и вам подсказываю. Часто в 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
Запомнили? Молодцы.
Себе напоминаю и вам подсказываю. Часто в 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
Запомнили? Молодцы.
PS D:\Coding\ps1\AzMailTest> gc .\2.ps1
ReplyDeletefunction 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.
. .\N1.ps1
ReplyDeleteif your current folder is the same as the location of the N1.ps1 file.