第14章--PowerShell编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三部分WindowsPowerShell第14章PowerShell编程在vista之后,微软为windows开发了一个全新的consoleshell—PowerShell与标准的windows命令和应用程序兼容全新的命令格式:cmdlets支持对象/面向对象适合管理员应用多语言支持发现功能:Get-Command、Get-Help、Get-Member命令fso=CreateObject(Scripting.FileSystemObject)foreachfileinfso.GetFolder(c:\temp).Filesfile.Deletenextdirc:\temp|remove-item(dirc:\temp).delete()脚本文件名称pslpowershell中内置的命令称为cmdlets统一的命令形式支持管道功能输出易于管理的对象,支持面向对象的概念命令行调试编辑工具ISE提供者驱动器CertEnvHKCUHKLMFunctionVariableWSMan例如:dirvariable:注释#…#…#变量$开始,例如$stone='abc‘不区分大小写包括任意字符,除了{}和:特殊字符名称包含在{}中${mycomputername}='abc'数学运算我们可以把powershell当成一个计算器。象键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出。常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持。PSC:\pstest1+2+36PSC:\pstest0xABCD43981PSC:\pstest3.14*10*10314PSC:\pstest1+3-(2.4-5)*(7.899-4.444)12.983PS能自动识别计算机容量单位,包括KB,MB,GB,TB,PBPSC:\pstest1pb/1tb1024PSC:\pstest1tb/1gb1024PSC:\pstest1gb/1kb1048576PSC:\pstest1gb/20mb*10kb524288自动化变量Powershell自动化变量是那些一旦打开Powershell就会自动加载的变量。用户信息:例如用户的根目录$home配置信息:例如powershell控制台的大小,颜色,背景等。运行时信息:例如一个函数由谁调用,一个脚本运行的目录等。$pid$PROFILE$HOME环境变量$env:windir$env:ProgramFiles查找环境变量lsenv:创建新的环境变量$env:TestVar1=Thisismyenvironmentvariable“删除delenv:windir驱动器变量直接访问文件路径通过驱动器直接访问文件路径,也支持物理驱动器,必须把文件路径放在封闭的大括号中,因为正常的文件路径包含两个特殊字符“:”和“”,有可能会被powershell解释器误解。${c:/powershell/ping.bat}特殊的变量:子表达式由$+圆括号+表达式构成的变量属于子表达式变量,这样的变量会先计算表达式,然后把表达式的值返回。Thesizeof1.txtis$($(ls1.txt).Length)变量的幕后管理在Powershell中创建一个变量,会在后台生成一个PSVariable对象,这个对象不仅包含变量的值,也包含变量的其它信息,例如”只写保护”这样的描述。$a=1Get-VariableaGet-Variablea|fl*创建数组创建数组可以使用逗号。$nums=2,0,1,2对于连续的数字数组可以使用一个更快捷的方法$nums=1..5数组的元素可以使用索引寻址,第一个元素的索引为0,第i个元素的索引为i-1,最后一个元素的索引为Count-1或者-1$books=元素1,元素2,元素3“$books[0]使用@{}创建哈希表,使用哈希表的键访问对应的值。$stu=@{Name=小明;Age=12;sex=男}在哈希表中插入新的键值$Student=@{}$Student.School=university“如果要更新键的值,可以直接重写。如果要删除这个键值对,可以使用Remove方法,参数为Key$Student.Remove(School)Powershell中的比较运算符-eq:等于-ne:不等于-gt:大于-ge:大于等于-lt:小于-le:小于等于-contains:包含-notcontains:不包含-not求反-and:和-or:或-xor:异或-not:逆管道中可以通过条件判断过滤管道结果,Where-Object会对集合逐个过滤,将符合条件的结果保留。Get-Process|Where-Object{$_.Name-eqiexplore}别名:Get-Service|?{$_.Name-likeB*}IF-ELSEIF-ELSE条件If(条件满足){如果条件满足就执行代码}Else{如果条件不满足}if($n-lt0){-1}elseif($n-eq0){0}else{1}Do-whiledo{$n=Read-Host}while($n-ne0)$n=5while($n-gt0){$n$n=$n-1}For$sum=0for($i=1;$i-le100;$i++){$sum+=$i}$sum创建对象创建对象$pocketknife=New-Objectobject增加属性$pocketknife|Add-MemberNotePropertyBlades3增加方法Add-Member-in$pocketknifeScriptMethodscrew{hello!}自定义对象$blog=|Select-Object-Propertyname,address$blog.name='abc'$blog.address='address'显示对象属性$blog|Format-List脚本运行与调试Set-ExecutionPolicy-ScopeCurrentUserremotesigned设置断点F9F10下一条语句stepoverF11下一条语句,如果当前语句是对一个函数的调用,则进入该函数的第一条语句stepinfoF5一直运行到结束或者碰到断点

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功