探索PowerShell (四) PowerShell的对象、格式与参数

2019-09-30 19:21:09王旭

Get-Process | ConvertTo-html | out-file “Processes.html”<enter>

Get-Process | Export-CSV Processes.csv<enter>

至于打开文件,使用如下命令即可:

Invoke-Item Processes.html<enter> 

Invoke-Item Processes.csv<enter>

看看截图吧(输出为".CSV"文件):

使用"Invoke-Item"命令打开:

Invoke-Item Processes.csv <Enter>

使用PowerShell的格式化输出是不是很简单呢?个人认为比VBScript要更加容易上手一些。管理系统更加方便!

PowerShell的常见参数

我们前面介绍过,为了简化我们的记忆,PowerShell对cmdlet使用了全新的"动词-名词"的命名方式,更加方便的是,几乎所有的cmdlet都拥有统一的标准化参数,当然,我说了,几乎所有的——并非全部。下面这个列表,列举出了“公共参数”(这些参数的名称是我们无法自定义使用的):


-confirm 在执行cmdlet前提示用户。

-debug  提供相关调试信息。

-ErrorAction 提示cmdlet在执行某项操作时可能出现的错误。如:继续,停止等。 

-ErrorVariable  使用一个特定的变量($error)来保存错误信息。

-OutVariable 用于保存输出信息的变量。

-OutBuffer 确定在进行下一次管道传递前需要缓存的对象数量。

-Verbose 为我们提供更多细节。

-whatif  并不会真正执行cmdlet,只是告诉你会发生什么。


此外,PowerShell中还保留了这些参数的下列别名:vb、db、ea、ev、ov 和 ob。

参数太多不好记?好办,记得使用"Tab"键,如:

get-service -<Tab> 

或者使用帮助命令"get-help":

get-help get-service -full <Enter>

好了,我们做一些简单的演示吧:

Set-ExecutionPolicy Unrestricted -whatif <enter> 

是不是很方便?在执行cmdlet之前,"-whatif"就会告诉你接下来会发生什么。

那么如下这条cmdlet呢:

Set-ExecutionPolicy Unrestricted -confirm <enter> 

是的,它将返回一条验证操作,以获取用户的进一步许可。只是"Y"、"A"、"N"、"L"与"?"我们都能轻易理解,那么"S"呢?

请注意观察以下执行结果:

Set-ExecutionPolicy Unrestricted -confirm<enter>  

Are you sure you want…  

S<enter> (places the prompt in suspend mode as denoted by “>>”).