Powershell输入和输出的探索与应用

这里的输入和输出是指控制台可显示的输入输出。适用于人机交互,没有人看的输入输出也就没有意义了。

我们打开的Powershell.exe和PowerShell ISE以及其他非微软的应用程序,其使用PowerShell时会调用PowerShell的引擎。应用程序也称为宿主应用程序,和我们进行交互的即是那些程序。与我们交互的方式和行为方式都是由宿主应用程序决定的。

输入命令:Read-Host

1.提示信息后面自动加了个冒号;

2.用户键入任何信息都被作为该命令的返回结果;

3.可以把键入的信息传递给一个变量,例如:

4.如何实现图形化输入框:

可以调用.Net Framework中的Microsoft.VisualBasic组件,该组件包含了图形化输入框:

第一条命令是载入组件,可载入一次,多次使用其中的输入框(第二条命令);其中第二条命令中InputBox()方法中的三个参数,

第一个是提示框中的文本信息;

第二个参数是提示对话框的标题;

第三个可以空白或填写想要显示的输入框默认值。

 

输出命令:Write-Host/Output等等

当需要展示一个特定信息,比如使用其他颜色来吸引人们的注意力的时候,可使用Write-Host命令;

Write-Host和其他Cmdlets一样使用管道,但是它不放置任何数据道管道中。反而会直接写到宿主应用程序的界面。正如此,可以使用命令行中的-ForegroundColor和-BackgroundColor参数将前景和背景设置为其他颜色:

注:不是每个使用PowerShell的应用程序都支持其他颜色,也并不是每个应用程序都支持所有颜色。

该输出方法不适用于常规的输出结果,因为-Host命令输出到屏幕的任何东西都无法被捕捉。若执行远程命令或无人值守命令,-Host可能不会按照你的预期工作。正如开始所说,-Host命令仅仅用于与人进行直接交互。

针对手动格式化一个表格,可以使用更好的方法来产生输出结果,具体可参考 Learn PowerShell Toolmaking in A Month of Lunches(Manning 2012);

针对产生错误信息,警告信息,调试信息等,有更合适的方法实现;

所以,如果妮恰当的使用PowerShell,可能不会多次用到Write-Host命令。

 

Write-Output命令会将对象发送给管道。因为它不会直接发送到显示界面,所以不允许你指定其他任何的颜色。

它是PowerShell默认使用的一个Cmdlets,默认输出方式即使用该命令,即使你没有指定,PowerShell会在底层将信息传递给Write-Output命令。

基本过程为:

1.Write-Output命令将String类型的对象Hello World!放入管道中;

2.管道中只有这个String对象,其会直接到达管道的末端,也就是Out-Default命令;

3.Out-Default命令将对象传递给Out-Host命令;

4.Out-Host命令要求PowerShell的格式化系统格式化该对象。

5.Out-Host将格式化的结果集放在显示界面上。

下面示例中,会在第2步,进行判断对象长度是否大于10,进行过滤再传递给Out-Default:

而使用Write-Host,会直接显示在界面上,不会经过管道,直达显示界面:

其他的输出方式:

Write-Warning/Verbose/Debug/Error

Powershell针对每种输出方法都有对应的内置配置变量。如果变量设置为“Continue”,则可显示输出结果,若设置为“SilentlyContinue”,那么就不会产生任何输出信息。

其中Write-Warning/Error,默认配置变量值为“Continue”,可直接使用:

其中Write-Verbose/Debug,默认配置变量值为“SilentlyContinue”,可设置后使用,否则无信息显示:

注意:PowerShell还有两个输出命令,Write-Progress/Information,Progress是用来展示进度条的,实现原理和上述命令完全不同,可参阅其帮助文档;Write-Information Cmdlets是PowerShell V5引入的一个新命令,其将信息写入一个在Shell中唯一、结构化的流中,使得V5版本既可以写入结构化数据也可以写入信息消息。Write-Host底层使用的是Write-Information命令,可参阅Https://teachnet.microsoft.com/en-us/library/dn998020.aspx

 

----End---

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值