美文网首页
powershell 7.0-7.3的新增内容

powershell 7.0-7.3的新增内容

作者: mudssky | 来源:发表于2022-07-25 16:30 被阅读0次

7.0

  1. 管道平行化,ForEach-Object -Parallel ,foreach可以并行运行,效率极大提升
  2. 新的操作符
    1. 三元运算符 a ? b : c
    2. 管道链操作符,(&& and||
    3. 空值可选操作符(?? and ??=)
  3. 简化和动态的错误视图,还有增加了Get-Error命令
  4. 增加兼容层,允许用户在windows powershell会话中隐式导入模块
  5. 新版本自动提醒
  6. 从powershell7中调用DSC资源 (实验性的)

关于管道链操作符(&& and||

三元运算符和空值可选操作符,其实js里面也有,比较常用了。

这个管道链操作符,我用的还是比较少,其实npm script 里就有这种语法。

这两个操作符是利用$?$LASTEXITCODE 这两个变量来判断管道是否执行成功的。

&&的作用是,如果左边的管道成功,继续执行后右边的管道,如果左边失败,则不执行右边的管道。也就是执行到有一个不成功为止

下面两次执行就能帮我们理解 &&操作符的逻辑。

Write-Output 'First' && Write-Output 'Second'

First
Second
Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

||如果左边的管道成功,那就只执行左边的,如果左边不成功,那就执行右边的,也就是执行到有一个成功的为止

Write-Output 'First' || Write-Output 'Second'
Write-Error 'Bad' || Write-Output 'Second'

管道链的等价语法

由于链式操作符是根据$?变量判断管道是否执行成功,其实就是一个语法糖,下面两个例子就是转换

Test-Command '1' && Test-Command '2'
Test-Command '1'; if ($?) { Test-Command '2' }

下面是 ||操作符的转化

Test-Command '1' || Test-Command '2'
Test-Command '1'; if (-not $?) { Test-Command '2' }

管道链的赋值

$result = Write-Output '1' && Write-Output '2'
$result
1
2

如果管道链中发生错误,赋值就不会成功,

7.2

  • 新的通用安装包,支持大多数linux发行版
  • windows上 Microsoft Update 支持
  • 2个实验特性
    • 本地命令参数传递支持
    • ANSI 文件信息色彩支持
  • 提升Tab补全
  • PSReadLine 2.1,智能感知
  • 7个实验特性提升为主流,一个被移除
  • 移除DSC
  • 几个提升可用性的破坏性更改

总结一下,就7.0新加的语法有用,7.2和7.3加的东西,反正我是看不懂的。改动比较小。

相关文章

网友评论

      本文标题:powershell 7.0-7.3的新增内容

      本文链接:https://www.haomeiwen.com/subject/mzngirtx.html