powershell(2)-基础
本节主要讲一下关于powershell一些简单的基础知识,推荐网站<http://www.pstips.net/>学习Powershell的一些基础知识
这里是一些简单的基础,写的可能有些简陋,这里可能需要你有一些编程语言的基础就能看懂啦,这里对于后面的代码分析是非常有用的,所以还是希望大家简单的浏览一下基础知识。
变量
变量都是以$开头, 是强类型语言, 语言是大小写不敏感的
提一提变量保护与常量的声明:New-Variable num -Value 100 -Force -Option readonly这样就得到一个受保护的变量$num,如果要销毁它只能通过del $num删除。如果要声明常量则用New-Variable num -Value 100 -Force -Option constant
数组
数组的创建:
数组的创建可以通过下面五种方式来创建,在适当的条件下选择适当的方式创建即可
1. $array = 1,2,3,4
2. $array = 1..4
3. $array=1,"2017",([System.Guid]::NewGuid()),(get-date)
4. $a=@() # 空数组
5. $a=,"1" # 一个元素的数组
数组的访问
数组的访问和C类似,第一位元素实用下标0来访问即$array[0],我们来看看ipconfig获取到的数据
1. $ip = ipconfig
2. $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" }
哈希表的插入与删除:
1. $Student=@{}
2. $Student.Name="hahaha"
3. $stu.Remove("Name")
对象
在powershell中一切都可以视为对象,包罗万象 New-Object可以创建一个对象 Add-Member可以添加属性和方法
控制语句
条件判断
比较运算符
1. -eq :等于
2. -ne :不等于
3. -gt :大于
4. -ge :大于等于
5. -lt :小于
6. -le :小于等于
7. -contains :包含
8. $array -contains something
10. -notcontains :不包含
11. !($a): 求反
12. -and :和
13. -or :或
14. -xor :异或
15. -not :逆
if-else
1. if-else:
3. if($value -eq 1){
4. code1
5. }else{
6. code2
7. }
循环语句
while
1. while($n -gt 0){
2. code
3. }
for
1. $sum=0
2. for($i=1;$i -le 100;$i++)
3. {
4. $sum+=$i
5. }
6. $sum
foreach
1. # 打印出windows目录下大于1mb的文件名
2. foreach($file in dir c:\windows)
3. {
4. if($file.Length -gt 1mb)
5. {
6. $File.Name
7. }
8. }
foreach-object
1. # 获取所有的服务,并获取对呀进程ID是否大于100
2. Get-WmiObject Win32_Service | ForEach-Object {"Name:"+ $_.DisplayName, ", Is ProcessId more than 100:" + ($_.ProcessId -gt 100)}
函数
1. function Invoke-PortScan {
2. <#
3. .SYNOPSIS
4. 简介
6. .DESCRIPTION
7. 描述
9. .PARAMETER StartAddress
10. 参数
12. .PARAMETER EndAddress
13. 参数
15. .EXAMPLE
16. PS > Invoke-PortScan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254
17. 用例
18. #>
19. code
20. }
异常处理
Try{ $connection.open() $success = $true }Catch{ $success = $false }
