欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1.PowerShell

程序员文章站 2023-12-30 17:35:04
...

人的一生,没有一味的苦,没有永远的痛;没有迈不过的坎,没有闯不过的关!

  1. PowerShell是微软面向对象的一门语言

  2. 我现在虚拟机、宿主机都是Windows2019的版本,内置了PowerShell5.1

  3. 两种进入方式:1.类似进入命令行CMD;2.PowerShell的ISE内有提示、《颜色显示

  4. PoweShell的注释:

    • 单行注释
    #注释内容
    
    • 注释块
    <#
    	注释内容
    #>
    
  5. PoweShell的if、function块等自动识别开闭,但是可以使用

    #region
    
    #endregion
    
  6. Power Shell可以识别{}、[]、()

    • 放在一半,另一半变亮;
    • 快捷键
  7. Power Shell内置了代码块。调用

    • 右键

    • ctrl+j
      
  8. Power Shell的On the line 搜索命令

PowerShell的基本命令

  1. 除了支持本身命令,还支持其他的如cmd的ping、ipconfig;但是powershell本身有相似对应的命令

    ipconfig Get-NetIPAddress

    ping test-connection

    推荐使用PowerShell 的Cmdlet

  2. Cmdlet的组成:

    • Command Name Command Paramenters
    • Remove-Item -Path C:\TEmp -Force
  3. get -command :获取命令的信息

  4. 注意命令缩写,自己设定命令的缩写(不推荐,要跨平台,其他人误解)

  5. 查奇怪命令的用法 $? | {}

    Get-Alias -Name ?
    
  6. PowerShell的命令参数类型

    • 样式 内容 是否要求必写
    • [] 否
    • 没有标志 开关(输入开不输入关) 是
  7. PowerShell的参数集 不能混用

  8. 参数集 多个参数集不能混用

  9. Data 所有数据存储在一个对象里

  10. $a=1 $a

  11. $a =Get-Service 变为PowerShell的对象

  12. $a =Get-Service 特有Start stop

  13. $a[0].name

  14. New-Variable c -Value 3 定义一个值为3的对象

  15. Get-Variable -name c 获取c的值 大小写不敏感;空格敏感

  16. Clear-Variable -name c 清空c 的值

    • $c 为空
    • Get-Variable -name c Value为空
  17. Remove-Variable -name c 删除c变量

    • c 变 为 c 变为 cConfirmPreference
    • Get-Variable -name c Get-Variable : 找不到名为“c”的变量。
  18. PowerShell内置了一些变量(自己命名不要和内置变量重名)

    • $Error 数组 保存了出错的问题
    • $PSVersionTable 查询PowerShell的版本
    • $true 命令行回复 True
    • $false 命令行回复 False
  19. PowerShell从键盘读命令:$intputa=Read-Host “please input”

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GOz6CFtn-1606888097373)(C:\Users\11988\AppData\Roaming\Typora\typora-user-images\image-20201201222308014.png)]

  20. PowerShell映射了其他命令行的命令如cd ls(都是命令的缩写)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5tnhoHt-1606888097376)(C:\Users\11988\AppData\Roaming\Typora\typora-user-images\image-20201201223427873.png)]

  21. 什么是Provider

    实际上是一个动态链接库(.dll),在PowerShell中也称为”管理单元”, MSDNS上定义的类库:http://msdn.microsoft.com/en-us/library/cc136763(VS.85).aspx

  22. Teat-Path测试的路径

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WcFtcAn-1606888097380)(C:\Users\11988\AppData\Roaming\Typora\typora-user-images\image-20201201224036228.png)]
  23. 管道(|)的作用:把管道(|)左边的输出作为右边的输入

    • Get-Service -Name Schedule ,BITS | start-Service
  24. 管道常见的命令

    • Get-service |Sort-object -Property status \ \获取管道并根据status排序(视频38‘)

      gci C:*.txt |sort-Object -Property @{Expression ={ . C r e a t i o n T i m e − _.CreationTime - .CreationTime__.LastWriteTime};Descending=$true} |ft CreationTime,LastwriteTime,FullName

    • Get-service |Sort-object status \排序方式根据需要设定

    • Get-service |Group-Object -Property statue

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yAqvQaus-1606888097385)(C:\Users\11988\AppData\Roaming\Typora\typora-user-images\image-20201201225228050.png)]

  25. 数组的定义

  26. 比较数组

    [email protected](1,2,4)
    [email protected](1,2,3)
    Compare-Object -ReferenceObject $a -DifferenceObject $b -IncludeEqual

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MxWo9wOk-1606888097388)(C:\Users\11988\AppData\Roaming\Typora\typora-user-images\image-20201201230806066.png)]

    => DifferenceObject 只有的对象

    <=ReferenceObject 只有的对象

  27. 常用的Object Cmdlets

    • Sort-objec
    • Select-objec
  28. 输出格式化

    • Get-Service | Format-List \ \List方式展示
    • Get-Service | Format-Table \ \Table方式展示
    • Get-Services |Export-CVS
  29. $Services=Get-Service
    $Services | Export-CSV c:\temp\test.csv
    $fromCsv = import-CSV c:\temp\test.csv

  30. $Service[0].GetType(): 获取变量的类型

  31. 对象的层

  32. Services | Out-File c:\temp\test.txt 输出到文件

  33. gc : get-comant 获取一条命令

    gc C:\temp\testservicesJson2.txt |convertFrom-Json

  34. PowerShell 会自动识别数据类型

    • $a=1 $a.GetType() Int 32
    • $a=1pb $a.GetType() Int 64
    • 强制定义数据类型
      • $a=[String]1 $a.GetType() String
    • 强制定义变量类型
      • [int]$inta=1 $inta.GetType() int 能转成字符转为字符;否则报错
  35. 字符串

    $stringa="aaa"
    $inta=1
    $stringa="inputa vlue is $inputa"
    

    字符串单引号、双引号赋值区别 :双引号解析;单引号直接赋值

    s t r i n g a = " i n p u t a v l u e i s ‘ stringa="inputa vlue is ‘ stringa="inputavlueisinputa" 不解析$inputa

  36. PowerShell 的转义符号

  37. ’ 将命令换行

  38. 管道里操作缩写

    • -eq
    • -ne
    • -gt
    • -ge
    • -lt
    • -le
    • -match 字符串的匹配
  39. Where object 和foreach object

    • Where object 筛选某些变量 KaTeX parse error: Expected '}', got 'EOF' at end of input: service |? {_.statu -eq ‘stopped’}

      • ?Where object
      • _ $service.Count $PSItem
    • foreach object 遍历某些变量

      • $a=1

      • $service |%{

        echo “$a ( ( (_.name)”

      • }

  40. filter过滤

  41. 数组的定义

  42. hash表的定义以及使用

上一篇:

下一篇:

推荐阅读