PowerShell学习笔记五_模块

PowserShell其他技巧

1. 执行完一个ps1文件后,不回收

有一个场景,在fun.ps1中,仅仅写了一段

Funtion fun([String] input)

{

}

然后打开PowerShell之后,输入.fun.ps1,回车,因为fun.ps1中,没有调用fun,所以什么事情都没有发生

随后,fun函数也会从内存中清空,按Tab键也不会补全

为了避免这个情况,要输入:

. .fun.ps1 ,   .[空格].fun.ps1

然后按tab键就会出来了

原理:PowerShell为一个.ps1文件建一个堆栈,使用".[空格].fun.ps1" 就不回收这个堆栈

2. 正则表达式测试: “内容” -match "表达式"

3. 获取文件内容:$content = Get-Content -path C:userpyldestopaa.txt

#虽然$content|get-member是[string]类型的,但是$content[1]就是获取第2行的


但是,如果每次都要输入. .fun.ps1 ,才能开始工作,就比较麻烦

可以将fun.ps1搞得像PowserShell原生命令一样,”注册“到电脑中

#当函数按照标准的PS命名时,可以视为cmdlet,如fun是方法,而Get-xxxx则可以视为Cmdlet

 模块的发布

模块是以文件夹的形式存在,里面包含.psd1文件,.psm1文件

.psm1文件是模块文件,.psd1是模块调用的文件

.psm1相当于入口了

模块文件夹放在C:Program Files (x86)WindowsPowerShellModules

导入模块:

Import-Module c:XXXmodule1.psm1

根据.ps1生成.psm1

New-ModuleManifest -Path $env:ProgramFilesWindowsPowerShellModulesMyScriptModuleMyScriptModule.psd1 -RootModule MyScriptModule -Author 'Mike F Robbins' -Description 'MyScriptModule' -CompanyName 'mikefrobbins.com'

注意的是,RootModule一定要填,而且

原文地址:https://www.cnblogs.com/pylblog/p/14298674.html