PowerShell系列(十二):PowerShell Cmdlet高级参数介绍(二)

2023-10-14 20:28

本文主要是介绍PowerShell系列(十二):PowerShell Cmdlet高级参数介绍(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、ErrorVariable 错误变量

2、OutVariable 结果输出

3、OutBuffer 输出Buffer定义

4、PipelineVariable管道参数


今天给大家讲解PowerShell Cmdlet高级参数第二部分相关的知识,希望对大家学习PowerShell能有所帮助!

1、ErrorVariable 错误变量

上篇文章我们讲过$Error变量,对于PowerShell执行出现的错误会被写入到这个变量里面,加上时间的累积,这个变量的数据量就会非常大,我们平常在排查问题的时候需要对错误信息进行Debu调试,这个时候ErrorVariable 就可以解决这个问题,它的主要作用是把执行出现错误的信息输出到我们定义的变量里面去。

变量输出方式:覆盖的方式输出错误信息到变量;追加的方式输出错误信息到变量(自定义变量前面增加 + 号 )。

示例:移除一个不存在的 端午节2.txt命令如下:

remove-item 端午节2.txt -ErrorVariable CurrError
$CurrError  #输出错误信息
#再执行一遍
remove-item 端午节2.txt -ErrorVariable CurrError 
$CurrError  #输出错误信息 #发现错误信息没有新增为两条
# 给命令增加+号 实现错误信息追加
remove-item 端午节2.txt -ErrorVariable +CurrError
$CurrError #输出两条错误信息表示追加成功了

覆盖方式执行

追加命令

2、OutVariable 结果输出

OutVariable的功能和Tee-Object比较类似,把当前命令的执行结果输出到定义的变量当中去,然后在命令结果传递到管道的同时,把执行结果保存到PowerShell变量中去。

示例:

获取Logs目录的信息

 Get-ChildItem

获取的Logs目录信息保存的输出变量LogList

Get-ChildItem -OutVariable LogList
#输出LogList变量
$LogList

3、OutBuffer 输出Buffer定义

确定在通过管道发送任何对象之前,缓冲区中要累积的对象数。 如果省略此参数,则会在生成对象时发送对象。

此参数定义在将任何对象向下传递管道之前要存储在输出缓冲区中的对象数。 默认情况下,对象会立即沿管道向下传递。

参数类型为Int32

官方示例

以 ForEach-Object 处理使用 Write-Host cmdlet 的块。 显示以 2 或 OutBuffer + 1的批次交替显示。

1..4 | ForEach-Object {
        Write-Host "$($_): First"; $_
      } -OutBuffer 1 | ForEach-Object {
                        Write-Host "$($_): Second" }

输出结果

1: First
2: First
1: Second
2: Second
3: First
4: First
3: Second
4: Second

4、PipelineVariable管道参数

PipelineVariable 允许访问使用此参数的命令传递到下一管道段的最新值。 管道中的任何命令都可以使用命名的 PipelineVariable 访问值。 当变量传递到下一个管道段时,该值将分配给变量。 这使得 PipelineVariable 比特定的临时变量更易于使用,可能需要在多个位置分配该临时变量。

使用 PipelineVariable 允许任何管道命令访问 (传递的管道值,并) 由上一个命令以外的命令保存。 管道命令可以在处理通过管道的下一项时访问从中传递的最后一个值。

示例

第一个Foreach-Object命令的结果通过管道传递到第二Foreach-Object个命令中,该命令显示 和 $_$temp当前值。

# Create a variable named $temp
$temp=8
Get-Variable temp
# Note that the variable just created isn't available on the
# pipeline when -PipelineVariable creates the same variable name
1..5 | ForEach-Object -PipelineVariable temp -Begin {
    Write-Host "Step1[BEGIN]:`$temp=$temp"
} -Process {
  Write-Host "Step1[PROCESS]:`$temp=$temp - `$_=$_"
  Write-Output $_
} | ForEach-Object {
  Write-Host "`tStep2[PROCESS]:`$temp=$temp - `$_=$_"
}
# The $temp variable is deleted when the pipeline finishes
Get-Variable temp

输出

Name                           Value
----                           -----
temp                           8Step1[BEGIN]:$temp=
Step1[PROCESS]:$temp= - $_=1
        Step2[PROCESS]:$temp=1 - $_=1
Step1[PROCESS]:$temp=1 - $_=2
        Step2[PROCESS]:$temp=2 - $_=2
Step1[PROCESS]:$temp=2 - $_=3
        Step2[PROCESS]:$temp=3 - $_=3
Step1[PROCESS]:$temp=3 - $_=4
        Step2[PROCESS]:$temp=4 - $_=4
Step1[PROCESS]:$temp=4 - $_=5
        Step2[PROCESS]:$temp=5 - $_=5Name                           Value
----                           -----
temp

这篇关于PowerShell系列(十二):PowerShell Cmdlet高级参数介绍(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212944

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6