首页 > 自考资讯 > 高考百科

Powershell知识导图(powershell 知乎)

小条 2024-07-05

77ad56126a3f48ebaa9d4ee3fdd97485~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720752052&x-signature=UE%2BtsUrw%2BQKtPQCBABFs7lL7eVA%3D 1. 基本概念

1.Powershell定义

PowerShell 是Windows 平台上的一种命令行shell 和脚本语言,它定义了一组与操作系统(尤其是文件系统)交互的命令,以启动和控制应用程序。

2.Powershell变量

(一)、定义

PowerShell变量不需要预定义,可以直接使用。当使用变量时,它会被自动声明。变量以$ 符号开头。示例:$a(2),常规变量

两种赋值方法: 方法一:$a='这是一个字符串' $b=123 $c=0.125 方法二:Set-Variable var 100 Set-Variable var1 "test" Set-Variable va2 800 获取变量值get-variable var #获取单个变量值get-variable var* #获取多个变量值清除一个变量值clear-variable var 删除一个变量值remove-variable var 2 合并两个字符串变量$a='This is the 1' $ b=' 这是第二个' $c=$a + ' and ' + $b $c 结果:这是第一个,这是获取第二个变量的方法$date=Get-Date # 获取当前时间$date .AddDays(3 ) #当前时间加3天(3),特殊变量

注意:PowerShell 特殊变量是由系统自动创建的。用户定义的变量名称不能与特殊变量相同。公共特殊变量$^: 上一个命令行的第一个标记$: 上一个命令行的最后一个标记$_: 代表一个迭代变量,代表当前循环。 $?最后一个命令执行状态,成功(Ture)或失败(False) $Args:指定给脚本或函数的参数$Error:如果发生错误,错误对象是对变量$Error 的引用$Foreach:foreach循环枚举器$Home:用户的主目录$Host:对托管POWERSHELL 语言的应用程序的引用$Input:通过管道传递到脚本的对象的枚举器$LastExitCode:上一个程序或脚本的退出代码$Matches:使用通过match 运算符找到的匹配项的哈希表$PSHome:Windows PowerShell 安装位置$profile:标准配置文件(可能不存在) $StackTrace:Windows PowerShell 捕获的先前异常$ Switch:switch 语句中的枚举3. Powershell 常量

(一)、定义

PowerShell常量值永远不会改变。常量不能被删除。 (二)、注意事项

在使用常量之前,必须使用Set-Variable 创建它并指定一些参数以使其等于常量。如果使用常量,它们必须以$ 开头。但是,当使用Set-Variable 定义常量时,不能在开头使用$ 符号。 (3)、使用示例

$aryComputers='loopback', 'localhost' #数组变量Set-Variable -name intDriveType -value 3 -optionconstant #常量定义constant: intDriveType value: 3 foreach ($strComputer in $aryComputers) #循环遍历数组对象{'硬盘on: ' + $strComputer #wmi 获取对象分类:win32_逻辑磁盘计算机名称:$strComputer 源自数组对象计算机过滤条件:drivetype=3,驱动器类型为3 Get-WmiObject -class win32_逻辑磁盘-computername $strComputer |Where {$_ .drivetype -eq $intDriveType}}4、Powershell 数组

(一)、定义

Powershell 创建数组的方式与变量相同,只不过数组可以分配多个值。 (2)、使用示例

使用数组方法: $arrName[0]:数组中第一个数组项的值,表示数组从0开始。示例:$arrName='LOGONSERVER','HOMEPATH', 'APPDATA','HOMEDRIVE' 5. Powershell 注释

注释符号: # 用法是(.ps1脚本文件中常用):Get-Process # 在这里写注释

2. 基础知识

1.Powershell版本

64位目录:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

32位目录:C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

2.运行Powershell

本地运行

直接在网络环境中执行代码

3.Powershell执行策略

(1)执行策略的确认

powershell Get-ExecutionPolicy 显示执行策略(二)、设置执行策略

powershell Set-ExecutionPolicy Unrestricted 设置执行策略(需要管理员权限)(3)、执行策略级别

Unrestricted 拥有最高权限,可以不受限制地运行任何脚本。 AllSigned 所有脚本都必须经过签名才能运行本地脚本。但是,来自网络的脚本必须经过签名。如果不配置旁路脚本,则没有任何限制或提示。 3. 基本命令。

1.命令解析顺序

Powershell命令的解析顺序(从上到下):别名- 函数- Cmdlet - 脚本- 可执行文件- 常规文件

2. 常用命令

(1)、获取类

1-10: 1.Get-Command:获取所有PowerShell 命令并获取有关cmdlet 的基本信息以及有关Windows PowerShell 命令的其他元素。包含cmdlet、别名和函数。 2.Get-Process:获取所有进程。 3.Get-Help:显示有关Windows PowerShell 命令和概念的信息。 4.Get-History:获取当前会话中输入的命令列表。 5.Get-Job:获取命令列表。当前会话中运行的Windows PowerShell 后台作业Session 9.Get-Culture:获取操作系统上设置的当前区域性。 10. Get-Date:获取当前日期和时间。 11-20: 11. Get-Host:获取代表当前主机程序的对象。 12. Get-Member:获取对象属性和方法。 13. Get-Random:从集合中获取随机数或随机选择的对象。 14. Get-UICulture:获取操作系统的当前用户界面(UI) 区域性设置。 15. Get -Unique:从排序列表中返回唯一的项目。 16. Get-Variable:获取当前控制台中的变量。 17. Get-EventLog:获取本地或远程计算机上的事件日志或事件日志列表。 18. Get-ChildItem:获取一个或多个指定位置的项目和子项目。 19. Get -Content:获取指定位置的项目内容。 20. Get-ItemProperty:获取指定项目的属性。 21-28: 21. Get-WmiObject:获取Windows Management Instrumentation (WMI) 类的实例或有关可用类的相关信息。 22. Get-Location:获取当前工作位置的相关信息(例如:F:\Users\TaoMin) 23. Get-PSDrive:获取当前会话的Windows PowerShell 驱动器。 24. Get-Item:获取指定位置的项目。 25. Get-Process:获取本地或远程计算机上运行的进程。 26. Get-Service:获取服务。 27. Get-Transaction:获取本地或远程计算机上的当前(活动)事务。 28. Get-ExecutionPolicy :获取当前会话中的执行。 策略(2)、定类。

1-10: 1.Set-Alias:为当前Windows PowerShell 会话中的cmdlet 或其他命令元素创建或更改别名(备用名称)。例如:Set-Alias aaa Get-Command等。 2.Set-PSDebug:打开和关闭脚本调试功能、设置跟踪级别、切换到严格模式。 3.Set-StrictMode:建立并强制执行表达式、脚本和编码。脚本阻止规则4.Set-Date:将计算机的系统时间更改为指定时间。 5.Set-Variable:设置变量的值。如果变量尚不存在,则创建该变量。 6. 在Set-PSBreakpoint: 行的命令或变量上设置断点。 7. Set-Location:将当前工作位置设置为指定位置。 8. Set-Item:将项目的值更改为命令中指定的值。 9. Set-Service:启动、停止、暂停服务以及更改服务属性。 10.Set-Content:将内容写入项目或用新内容替换项目中的内容。 11-13: 11.Set-ItemProperty:创建或更改属性。项目值12.Set-WmiInstance :创建或更新现有Windows Management Instrumentation (WMI) 类的实例。 13.Set-ExecutionPolicy:更改Windows PowerShell 执行策略的用户设置。 (三)、课堂写作

1-8: 1.Write-Host:将自定义输出内容写入主机。类似于.net 的write() 或writeline() 函数。 2.Write-Progress:在Windows PowerShell 命令窗口中显示进度条。 3.Write-Debug:将调试消息写入控制台。 4.Write-Verbose:写入文本。详细消息流5.Write-Warning:写入警告消息。 6.Write-Error:将对象写入错误流。 7.Write-Output:命令发送到管道中的下一个命令。管道最后一个命令。在控制台中显示这些对象。 8.Write-EventLog:将事件写入事件日志。 3.其他命令

(1), 1-10

1. get-command 查看可用命令。这与在Linux 上连续按两次Tab 相同。 get-cmmand 的缩写是gcm。 gcm c:\command.txt #可以将命令导出为文本文档。 2. get-help 后面跟着命令。这与Linux 上的man 后跟命令或命令后跟--help 相同。 3.清除主机,引用。 cls,相当于Linux。 您还可以在此处使用清屏命令。它被称为gl。这也相当于Linux的pwd(打印工作目录)。 5.set-location相当于Linux的cd命令。这里也可以使用cd,但是powershell的cd命令不需要添加/d。添加参数会报错。我们建议在cmd中的cd命令中添加/d。您还可以使用dir 7,get 列出目录中的文件。 -item文件名,get-item可以缩写为gi。获取文件属性。支持通配符get-item n* 列出以n 开头的文件。 filename也可以达到检索文件属性的效果。 get-itemproperty,缩写为gp,get-itemproperty可以缩写为gp filename。 8. new-item filename 创建一个相当于Linux 上touch 的文件(缩写为ni)。 mkdir 也可以缩写为md。 (创建目录)10.move-item,缩写为mi或move(2)、11-20

11.copy-item,缩写为cp或copy。 12.重命名,缩写为ren。 13. 缩写为Remove-item、del、ri、rm。使用rd 或rmdir 删除文件夹。 14. add-content,添加内容,省略。 as ac,用法:命令文件名'content' 15. set-content,设置内容,缩写sc,替换原来的内容,用法:命令文件名'content' 16.clear-content,清除内容,缩写clc,用法:命令文件名17 , get-services, 获取服务列表。它缩写为gsv。 18. get-process,获取进程列表。缩写为gps 或ps。 19.ConvertTo-Html,将结果转换为类似如下的网页。 get-process | ConvertTo-Html currentpss.html 20.export-csv,将结果转换为可在Excel 中分析的CSV 文件(例如get-process|export-csv currentpss.csv)。

1. 运算符优先级

'(){} '- '@$ '-' ! ' -'[]' - '.' - ' -'++ 或--' - '1 个元素+ -' - '*/%'-' 2 meta + -'-' 比较运算符'-'-and -or'- '|'-''-'='

2.算术二元运算符

+ 加法、串联- 减法* 乘法/除法% 模

3. 赋值运算符

=+=-=*=/=%=

4. 逻辑运算符

! 不等于不和或或

5. 比较运算符

-eq 等于-ne 不等于-gt 大于-ge 大于-lt 小于-le 小于或等于-contains 包含

6. 字符串运算符

+ 连接两个字符串* 重复字符串指定次数-f 格式化字符串-replace 替换运算符用法: 'abcd' -replace 'bc','TEST' 返回值:aTESTd -match 正则表达式匹配-like 通配符匹配

7. 致电接线员

可用于调用脚本块或命令/函数的名称的使用方式如下: $a={ Get-Process | Select -First 2} #获取处理器信息的前2条记录$a. $ a='This is a string' $a.substring(0,3) : 用于静态方法调用,如下: [DateTime]:IsLeap Year(2023) Result: True [DateTime]:Now #返回当前时间

八、其他经营者

,数组构造函数。范围运算符-is 类型标识符用法:$a=100 $a -is [int] 返回:True $a -is [string] 返回:False -as 类型转换器用法:1 -as [string ] #treat 1 as string -带二进制和-bor 二进制或-bnot 二进制不是

5.功能

1. 函数定义

(1)函数命名规则

PowerShell 的命令命名非常独特;它们都遵循“动词-名词”模式。 MS 还建议使用相同的模式命名自定义函数,以确保代码的可读性。 (2)函数命名实例

function Say-HelloWorld { Write-Host 'hello world!' }2. 调用该函数。

用法1是:(在函数内更改变量值不会影响实际值)$var1=10functionsay-one{'变量是$var1'}functionsay-two{$var1=20;one}Say-One Say-两个Say-One 结果:10 个变量20 个变量10 个变量

用法2 是:(函数内的变量值更改必须采用$Script:var 的形式)$var1=10functionsay-one{'变量是$var1'}functionsay-two{$Script:var1=20 ;one} Say-One Say-两个Say-One 结果:10 个变量20 个变量20 个变量

6. 条件语句

1.条件判断:if语句

第一个用法是: $num=200 if ($num -gt 90) {'这个数字大于90'} if ($num -lt 90) {'这个数字小于90'} if ($num -eq 100) { '这个数字等于100'}

用法2 为: $num=80 if ($num -gt 90) {'1'} elseif ($num -lt 90) {'0'} else {90}

2.条件判断:switch语句

第一个用法是: $sum=56 Switch($sum) { {$_ -lt 50} {'这个数字小于50'} {$_ -eq 50} {'这个数字等于50' } or 50 {'这个数字等于50'} {$_ -gt 50} {'这个数字大于50'} }

第二种用法是: $sum=56 Switch($sum) { {$_ -lt 50 -and $_ -gt 40} {'这个数字小于50 且大于40'} {$_ -eq 50} {'这个数字是50 等于'} {$_ -gt 50} {'这个数字大于50'} }

7.循环语句

1.循环语句:foreach语句

循环语句: $arr=1.10 foreach ($n in $arr) { $n*$n/2 }

2.循环语句:while语句

循环语句: $num=15 while ($num -gt 10) { $num $num=$num-1 } $num=15 do { $num $num=$num-1 } while($num -gt 10)

3.循环语句:for语句

循环语句: $num=0 for ($i=1;$i -le 100;$i++) { $num=$num+$i } $num

4.循环语句:switch语句

循环语句: $num=1.100 Switch ($num) { {($_%2) -eq 0} {'even'} {($_%2) -eq 1} {'odd'} }

8. 跳转语句

1、跳转语句:break

(1) 使用方法

当Break 语句出现在foreach、for、while、switch 和其他构造中时,break 语句会导致Windows PowerShell 立即退出整个循环。 (2),例如

用法如下: $var=0 while ($var -lt 10) { $var +=1 if($var -eq 5) { Break #当var=5 时,停止while 循环} write-host $var } 结果: 1 2 3 42.跳转语句:继续

(1) 使用方法

当continue 语句出现在循环构造(例如foreach、for 或while)中时,Windows PowerShell 会立即结束该特定循环并继续下一个循环。 (2),例如

用法如下: $var=0 while ($var -lt 10) { $var +=1 if($var -eq 5) { continue 如果#var=5,则退出本次循环,进入下一个循环。循环} write -host $var } 结果:1 2 3 4 6 7 8 9 10

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢