变量(variable):内存单元中,用来做标记的一种值

变量的常见类型

字符型 char 定义的的是文字

数值型 int定义的是数字

布尔型 bool 定义两种结果的类型,如错或者对

1)变量需要先人为的定义了才能生效:

如何定义变量

powershell中,有2种方法定义变量

.

使用$符号作为定义变量的标示符

.使用set-variable来定义,具体如下

1$变量名=变量值

eg:$a=2012意思是把2012这个数值赋予a这个变量

2set-variable -name 变量名 -value "变量值"

eg: set-variable -name B -value "12" 意思是把12这个数值赋予B这个变量

如何输出变量名

1write-output $变量名

eg:write-output $a 则输出2012这个值。$a的赋值见上个例子

2$变量名

eg:$a 也可以直接这样赋值。输出结果一样为2012

powershell中,还有一些特殊的变量

环境变量--系统变量----系统保留字

如:$env: 表示环境变量

$home 系统变量

数组

数组的概念:用于存储相同类型的数据元素组成的集合

为什么要使用数组

为了方便很好的查询自己想要的数据

数组类型

1:一维数组

如这样的数组

水果:苹果香蕉芒果草莓

2:二维数组

3:多维数组

如何定义数组

数组的索引号称为下标

数组的第一个元素下标为0

方法一

$数组名="数组值1","数组值2",.........

eg:$a="1","2","3"定义了3个数值的数组

方法二

$数组名=@("数组值1","数组值2",........)

函数:一个代码块就可以称为一个函数

为什么要使用函数

eg:随机输入三个数,让三个数相加给出结果,如何实现?

1:保持各个功能代码的独立性。

2:保证脚本的高可用性和易维护性。

如何声明一个函数

function 函数名(参数) {代码}

在声明参数的同时,需要声明数据类型并赋予默认值

eg:

function add

{

param

([int]$a=0,[int]$b=0)

$c=$a+$b

"$c"

}

函数要支持管道符,需要使用$input变量

egdir-path d:\ |findfolder

列出计算机的基本信息(计算机名,停止的服务,ip地址)
150323944.jpg

powershell 中的操作运算符

 

150426576.jpg

什么是运算符:运算符就是告诉程序执行特定的算术或者逻辑操作的符号

150609786.jpg

举例说明比较运算符

对值进行比较 -eq是“等于”的意思,-gt是“大于”的意思 -et是“小于”的意思

对条件进行测试

-like 表示模糊对比

-contains 表示包含

eg:

150641350.jpg


算术运算符

对值进行加,减,乘,除的运算。+- * /

+”还有一个功能,是将输入的字符串连接起来。

150714451.jpg

赋值运算符

赋值用“=

 

150749674.jpg

逻辑运算符
150810787.jpg

特殊运算符

 

150850644.jpg

使用IF判断结果

150920226.jpg

IF结构

流程图
151008795.jpg

IF的语法结构
151047842.jpg

举例说明if语句
151113556.jpg

POwershell中的循环

什么是循环

151156165.jpg

powershell循环的基本语句

1:for 循环
2:foreach循环
3:do.....while循环
4:while循环

首先for循环语法结构

151226485.jpg
FOR 

 和 foreach语法的比较

FOR语句的举例说明
151327464.jpg

PS中的管道和对象

管道

  在各种现代的shell中,均支持管道的概念。管道的最大特点就是:前一个命令的输出作为后一个命令的输入。cmdbash均支持管道的概念,这里我就不多说了,下面我们说说PS

管道的概念。

  在PS中,继承了cmd管道符号的表示方法:  |   表管道;但是PScmd的管道有本质的区别, cmd中的管道传递的是文本信息,而PS中传递的是对象,因此PS中的管道更加易于使用和管理。

  例如:   get-location cmdlet命令返回的是一个pathinfo对象,这个对象是一个信息包,信息包中包含了相关的信息。

2对象成员

  基于面向对象的概念,对象具有属性和方法;这些都可以认为是对象的成员, PS对象均具有众多的成员,为了查看这些成员,PS提供了一个获取对象成员的cmdlet get-member

我们可以利用get-member获取对象的成员信息。