我有一个文件夹,里面写了很多powershell函数,每个都保存为独立ps1文件,然后我在一个新的ps1文件中希望能自动的引用这个函数库,现在我的操作时是在该ps1文件中,为每一个函数都添加一条执行记录,如.\scripts\aaa.ps1,但这样很不方便,因为每次新增一个函数,我都需要修改这个ps1文件,希望有能更便捷的方法没,让ps1文件可以直接导入该文件下所有函数的ps1文件
0 Answers
把脚本按照这样的结构这样存放:
Directory: D:\data\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 9/28/2015 12:19 PM lib
-a--- 9/28/2015 12:22 PM 113 load.ps1
Directory: D:\data\test\lib
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 9/28/2015 12:19 PM 0 1.ps1
-a--- 9/28/2015 12:19 PM 0 2.ps1
-a--- 9/28/2015 12:19 PM 0 3.ps1
-a--- 9/28/2015 12:19 PM 0 4.ps1
然后写一个load脚本:
dir "$PSScriptRoot\lib" -Filter "*.ps1" | foreach {
. $_.fullName
Write-Host "Import $($_.fullName)"
}
这样每次就可以调用load脚本即可。
感谢指点,我更新了下代码,实现目标文件下所有ps1文件的自动导入运行Get-ChildItem C:\NewScript\libiary -Filter “*.ps1” | %{&($_.FullName)}