从另一个脚本运行PowerShell脚本的最佳和正确方法是什么?
我有一个脚本a.ps1,我想从中调用b.ps1执行不同的任务。
让我知道你的建议。点源是最好的选择吗?
答案 0 :(得分:6)
点源将运行第二个脚本,就好像它是调用者的一部分 - 所有脚本范围的更改都会影响调用者。如果这是你想要的那么点源,
然而,更常见的是将另一个脚本称为函数(脚本可以像函数一样使用param
和函数级属性)。在许多方面,脚本是PowerShell函数,文件名替换函数的命名。
答案 1 :(得分:1)
Dot Sourcing使您可以在以后更轻松地将脚本转换为模块,您不必将脚本更改为函数。
点源的另一个优点是,您可以通过将保存函数的文件添加到Microsoft.PowerShell_profile.ps1来将函数添加到shell中,这意味着您可以随时使用它们(无需担心路径等) )。
我的点源文件顶部有一个简短的写主机,其中包含函数名称和常用参数,我点源我的配置文件中的函数。每次我打开PowerShell时,我的个人资料中的函数列表都会滚动(如果像我一样,你经常会忘记函数/文件的确切名称。随着时间的推移,函数的数量开始堆积,你会很感激。)
答案 2 :(得分:0)
古老但仍然有意义。 我使用带有“导入模块”的模块,这将在当前的powershell会话中导入该模块。 为了避免保留在缓存中并始终对模块进行最后更改,我放置了一个“ Get-Module | Remove-Module”,它将清除当前会话中所有已加载的模块。
Get-Module | Remove-Module
Import-Module '.\IIS\Functions.psm1'