乐趣区

关于segmentfault:PowerShell-基础笔记

输入

  • 默认输入

    • 默认会在管道后退出Out-Default,依据前一个后果决定如何输入,也就是总会在管道开端退出 Format-CustomFormat-ListFormat-TableFormat-WideOut-Host
    • 例如 ls 等于ls | Format-Table | Out-Host
  • 其余输入形式

    • Get-Command -Verb out查看其余输入形式
  • 不显示输入

    • Out-Null>$null,例如创立文件夹等命令不须要输入后果md ABC >$null

    排序、筛选

  • 排序

    • ls | Sort-Object Length -Descending按 Length 降序
  • 筛选属性

    • ls | Select-Object Name,Length只显示 Name 和 Length
    • 如果命令有 -Properties 参数也有相似性能,但理论性能还需注意阐明,例如 Get-ADUser 的这个参数是指定显示扩大属性中的某些我的项目。
  • 筛选对象

    • ls | Select-Object -First 2,只显示前 2 个后果
    • ls | Where-Object {$_.Length -gt 500}显示大于 500b 的文件
    • 如果命令有 -Filter 参数也能筛选,不同的命令筛选性能各有不同,应用此参数效率更高

    变量

  • 替换变量值$a,$b = $b,$a
  • 申明变量时指定类型,零碎会主动将获取到的字符串转换为指定类型

    • 例如 [XML]$xml=(Get-Content .LogoTestConfig.xml),而后就能用$xml. 的模式来拜访文件内的节点了。
    • 例如 [DateTime]$date="2012-12-20 12:45:00",而后$date 能间接调用DateTime 的所有办法。
  • 任何对象都能够应用 Format-List * 查看它所有的属性和办法

    • 例如Get-WmiObject Win32_ComputerSystem | fl *

内置变量

Column1 Column2
$env 零碎环境变量
$PSScriptRoot 脚本所在目录

别名

  • 依据残缺名 Get-Alias -Definition '*smbshare*'
  • 依据别名 Get-Alias [-Name] 'Get-Alias'

多行文本

$text [email protected]"xxxxx"@

多行正文

<#
xxxxx
#>

异样解决

设置异样后程序如何解决 $ErrorActionPreference = "stop"

执行策略

https://docs.microsoft.com/zh…

重定向

  • Tee-Object可同时输入和保留到文件。例如ls | Tee-Object ls.txt
  • 将命令的后果赋给变量,变量会将后果按行存为数组
  • ... | Format-List *查看任意对象的所有属性和办法

数组

  • $num = 1,2,3,4,5
  • $num = 1..5
  • 空数组$a = @()
  • 一个元素的数组$a = ,1
  • 判断是否为数组$a -is [array]
  • 抉择特定元素$a[0,4,5]
  • 增加元素$a+=1
  • 删除第 3 个元素,$a[0..2]+$a[3]

哈希表

创立哈希表$a = @{}

$a = @{Age=1;Name='Jone'}

插入$a.Sex = '男'

退出移动版