前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerShell系列(十一):PowerShell Cmdlet高级参数介绍(一)

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

原创
作者头像
IT技术分享社区
发布2024-02-04 09:50:45
1950
发布2024-02-04 09:50:45
举报
文章被收录于专栏:运维运维

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

1、什么是高级参数

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

2、Verbose 参数

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

输入如下命令

代码语言:javascript
复制
get-childitem
get-childitem -verbose

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

再执行创建文件命令

额外输出信息

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

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

3、Debug参数

Debug参数主要用来显示函数执行过程中通过Write-Debug写入的相关信息,该参数默认是不启用的,需要通过执行命令当中增加 -Debug 参数来启用。

和Verbose类似,如果没有相应的调试信息输出,也不会输出任何信息,如果开启该参数后,命令执行过程中涉及到参数调试,输出的结果都会停下来等待人为干预是否执行下一步。这个和程序员平常的代码调试比较相似,只是不能一次性看到所以的执行代码罢了。

具体如下图

创建一个文件,增加-debug 参数会有确认提示,反之则没有。

代码语言:javascript
复制
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:命令执行出错立即停止执行,不会继续执行后续代码。

下面举个例子,这里来删除一个不存在的文件

首先执行

代码语言:javascript
复制
remove-item 端午节2.txt -ErrorAction Ignore

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

然后再执行

代码语言:javascript
复制
remove-item 端午节2.txt -ErrorAction Continue

输出如下错误信息

代码语言:javascript
复制
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命令

代码语言:javascript
复制
$Error

输出了错误信息

代码语言:javascript
复制
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

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

图片
图片

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

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是高级参数
  • 2、Verbose 参数
  • 3、Debug参数
  • 4、ErrorAction 参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档