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一定要填,而且