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

简介: 【2月更文挑战第6篇】Verbose 参数主要用来显示函数执行过程中通过Write-Verbose写入的相关信息,如果命令执行当中有写入则会有反馈信息输出,反之则没有任何信息输出。输入如下命令

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

1、什么是高级参数

所谓的高级参数就是针对那些可以完成执行命令之外还可以提供其他高级功能的参数(比如显示执行命令的信息、针对错误信息的处理方式、命令出现警告情况的处理方式等等)。使用较多的是New、Set、Remove等动词命令支持高级参数的命令方式。下面给大家逐一介绍这些高级参数。

2、Verbose 参数

Verbose 参数主要用来显示函数执行过程中通过Write-Verbose写入的相关信息,如果命令执行当中有写入则会有反馈信息输出,反之则没有任何信息输出。输入如下命令

get-childitem
get-childitem -verbose

可以看到两者输出的信息是一样的,表明函数执行过程没有写入相关信息。再执行创建文件命令

额外输出信息

详细信息: 正在目标“目标: D:\logs\端午节2.txt”上执行操作“创建文件”。

总结:针对获取操作的命令函数执行过程一般没有写入相关信息。对应操作命令函数(新建、修改、删除)一般都会有信息写入。

3、Debug参数

Debug参数主要用来显示函数执行过程中通过Write-Debug写入的相关信息,该参数默认是不启用的,需要通过执行命令当中增加 -Debug 参数来启用。和Verbose类似,如果没有相应的调试信息输出,也不会输出任何信息,如果开启该参数后,命令执行过程中涉及到参数调试,输出的结果都会停下来等待人为干预是否执行下一步。这个和程序员平常的代码调试比较相似,只是不能一次性看到所以的执行代码罢了。具体如下图创建一个文件,增加-debug 参数会有确认提示,反之则没有。

PS D:\logs> remove-item 端午节2.txt -debug

确认
是否确实要执行此操作?
正在目标“D:\logs\端午节2.txt”上执行操作“删除文件”。
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“Y”): y
PS D:\logs> new-item 端午节2.txt


    目录: D:\logs


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2023/6/24      7:23              0 端午节2.txt


PS D:\logs> remove-item 端午节2.txt

4、ErrorAction 参数

ErrorAction 参数主要用来指定命令和脚本执行出现错误后的操作,对于PowerShell环境全局默认使用ErrorActionPreference参数指定出现错误后的操作,我们可以通过ErrorAction参数覆盖默认的参数,从而满足我们的使用要求。ErrorAction 针对出错命令提供的操作方式

  • Continue:错误信息记录到$Error变量,命令继续往下执行。
  • Ignore:忽略错误继续往下执行,并且不记录错误信息。
  • Inquire:执行报错后,询问用户是否继续执行,错误信息会记录到$Error变量。
  • SlientContinue:命令执行出错,既不停止执行也不显示错误信息,错误信息也会被记录到$Error变量。
  • Stop:命令执行出错立即停止执行,不会继续执行后续代码。下面举个例子,这里来删除一个不存在的文件首先执行
remove-item 端午节2.txt -ErrorAction Ignore

因为这里指定的是Ignore参数,不会输出错误信息也不会记录到$Error变量里面去。然后再执行

remove-item 端午节2.txt -ErrorAction Continue

输出如下错误信息

remove-item : 找不到路径“D:\logs\端午节2.txt”,因为该路径不存在。
所在位置 行:1 字符: 1
+ remove-item 端午节2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\logs\端午节2.txt:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

再执行$Error命令

$Error

输出了错误信息

remove-item : 找不到路径“D:\logs\端午节2.txt”,因为该路径不存在。
所在位置 行:1 字符: 1
+ remove-item 端午节2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\logs\端午节2.txt:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

具体执行可以查看如下截图

当然其他情况大家可以自己动手操作试试看!下篇文章会继续介绍另外的高级参数。

相关文章
|
6月前
|
存储
PowerShell系列(十二):PowerShell Cmdlet高级参数介绍(二)
【2月更文挑战第7篇】$Error变量,对于PowerShell执行出现的错误会被写入到这个变量里面,加上时间的累积,这个变量的数据量就会非常大,我们平常在排查问题的时候需要对错误信息进行Debu调试,这个时候ErrorVariable 就可以解决这个问题,它的主要作用是把执行出现错误的信息输出到我们定义的变量里面去。
|
6月前
|
文件存储
PowerShell系列(十):PowerShell CmdletPowerShell Cmdlet 参数详解
【2月更文挑战第5篇】强制类型参数使用比较频繁,基本上涉及新建、更新、配置等命令都需要针对特定的对应进行操作,所有需要强制输入一个参数来确认操作的对象是谁。
PowerShell系列(十):PowerShell CmdletPowerShell Cmdlet 参数详解
|
6月前
|
运维 Shell 数据处理
PowerShell系列(九)PowerShell Cmdlet概念介绍
【2月更文挑战第4篇】大家可能对cmd命令比较熟悉cmd就是Windows系统命令行窗口执行的命令,微软为了和传统的Shell命令区分,所以重新起了一个名词“Cmdlet”专门给PowerShell配套使用,Cmdlet可以理解为在PowerShell环境
PowerShell系列(九)PowerShell Cmdlet概念介绍
PowerShell系列(十三):PowerShell Cmdlet高级参数介绍(三)
【2月更文挑战第8篇】WarningAction参数和执行命令过程中的警告有关系,该参数就是在PowerShell命令执行过程中出现警告之后进行的操作,默认环境中存在WarningPreference参数定义命令执行过程中出现警告的操作,当然也可以出现警告的时候执行特殊的操作
|
30天前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
26 0
|
2月前
|
Windows
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
123 10
|
6月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
198 0
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
98 0
|
JavaScript Windows
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题