powershell基础语法
变量
可以将变量当作是一个框,可以往这个框放入很多的东西,并且给这个框起一个名字。对变量进行命名的时候一般都是用驼峰命名法,字母+数字+下划线的组合
变量都是以$
开头, 是强类型语言, 语言是大小写不敏感的,使用=
未变量进行赋值,这个和python和任何的现代编程语言都是一样的。
注意$只是为了声明变量,并不是变量名称的一部分吗,例如$aa,就是变量aa的意思,也就是变量的名字就叫做aa,而不是$aa
提一提变量保护与常量的声明:New-Variable num -Value 100 -Force -Option readonly
这样就得到一个受保护的变量$num,如果要销毁它只能通过del $num删除。如果要声明常量则用New-Variable num -Value 100 -Force -Option constant
数组
数组的创建:
数组的创建可以通过下面五种方式来创建,在适当的条件下选择适当的方式创建即可,在power shell中的数组和python中的类似,数组中的每个元素都是用逗号隔开,但是在python中数组是需要用中括号来包裹的,比如numpy array
$array = 1,2,3,4
$array = 1..4
$array=1,"2017",([System.Guid]::NewGuid()),(get-date)
$a=@() # 空数组
$a=,"1" # 一个元素的数组
数组的访问
数组的访问和C类似,第一位元素实用下标0来访问即$array[0],我们来看看ipconfig获取到的数据
$ip = ipconfig
$ip[1] # 获取ipconfig第二行的数据
数组的判断
$test -is [array]
数组的追加:
$books += "元素4"
哈希表
哈希表的创建:
$stu=@{ Name = "test";Age="12";sex="man" }
哈希表里存数组:
$stu=@{ Name = "hei";Age="12";sex="man";Books="kali","sqlmap","powershell" }
哈希表的插入与删除:
$Student=@{}
$Student.Name="hahaha"
$stu.Remove("Name")
控制语句
条件判断
比较运算符
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
$array -contains something
-notcontains :不包含
!($a): 求反
-and :和
-or :或
-xor :异或
-not :逆
if-else
if-else:
if($value -eq 1){
code1
}else{
code2
}
循环语句
while
while($n -gt 0){
code
}
for
$sum=0
for($i=1;$i -le 100;$i++)
{
$sum+=$i
}
$sum
foreach
# 打印出windows目录下大于1mb的文件名
foreach($file in dir c:\windows)
{
if($file.Length -gt 1mb)
{
$File.Name
}
}
break、Continue、Return
# Break 旨在中断循环。 它通常与 switch 语句一起使用
for ($i = 1; $i -lt 5; $i++) {
Write-Output "Sleeping for $i seconds"
Start-Sleep -Seconds $i
break
}
# Continue 旨在跳到循环的下一次迭代
while ($i -lt 5) {
$i += 1
if ($i -eq 3) {
continue
}
Write-Output $i
}
# Return 旨在退出现有作用域
$number = 1..10
foreach ($n in $number) {
if ($n -ge 4) {
Return $n
}
函数
function Invoke-PortScan {
<#
.SYNOPSIS
简介
.DESCRIPTION
描述
.PARAMETER StartAddress
参数
.PARAMETER EndAddress
参数
.EXAMPLE
PS > Invoke-PortScan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254
用例
#>
code
}