首页 > 其他分享 >第19章 输入和输出

第19章 输入和输出

时间:2023-02-04 16:01:49浏览次数:51  
标签:输出 19 应用程序 Write 命令 Host Cmdlet PowerShell 输入

第19章 输入和输出

19.1 提示并显示信息

  PowerShell如何展示信息和进行对应的提示依赖于PowerShell运行的方式。你可以看到,PowerShell作为一种底层的引擎被创建。
  与你进行交互的对象称为宿主应用程序。当运行PowerShell.exe时,你看到的命令行控制台称为控制台主机。图形化的PowerShell ISE通常被称为ISE主机或者图形化主机。其他非微软的应用程序也可以调用PowerShell引擎。你与宿主应用程序进行交互,之后宿主应用程序将执行的命令传递给该引擎。宿主应用程序会展现引擎产生的结果集。

19.2 Read-Host命令

  PowerShell的Read-Host Cmdlet的功能是展示一个文本提示框,然后收集来自用户输入的信息。

PS C:\>Read-Host "Enter a computer name"
Enter a computer name: SERVER-R2
SERVER2

  该示例突出Cmdlet的两个重要的事实。

  • 提示信息的最后添加了一个冒号。
  • 用户键入的任何信息都会作为该Cmdlet的返回结果(严格来说,键入的信息被放进了管道)。

  你经常会将该输入信息传递给一个变量,类似下面这样。

PS C:\>$computerName = Read-Host "Enter a computer name"
Enter a computer name: SERVER-R2

  很多管理员会给用户部署一些PowerShell脚本,但是又不希望用户在命令行界面输入信息(毕竟,这并不是很“Windows 风格”)。我们想说的是可以实现,但是稍微复杂。
  为了创建一个图形界面的输入框,你必须借助于.Net Framework本身。使用下面的命令。
PS C:\>[void][system.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
  你只需要在某个PowerShell会话中执行一次即可。该命令会载入.Net Framework中的一个组件Microsoft.VisualBasic,实际上PowerShell并不会自动载入该组件。该Framework组件包含了大量的VisualBasic核心的框架元素,其中就包括图形化输入框。
  如果你觉得很难理解,也没关系,你可以照搬该命令,不需要理解它们的原理。一旦该Framework组件被云载入,你可以通过下面的命令来使用它。

PS C:\>$ComputerName = [Microsoft.VisualBasic.Interaction]::InputBox('Enter a
computer name','Computer Name','localhost')

  这里你可以修改的地方是InputBox()方法的3个参数。

  • 第一个参数是提示框中的文本信息。
  • 第二个参数是提示对话框的标题。
  • 第三个参数——可以是空白或完全省略,是你想显示在输入框中的默认值。

19.3 Write-Host命令

  Write-Host会和其他Cmdlet一样使用管道,但是它并不会放置任何数据到管道中。相反,它会直接写到宿主应用程序的界面。

19.4 Write-Output命令

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

19.5 其他输出方式

  PowerShell也存在其他方法产生输出结果。这些方法不会像Write-Host那样向管道写入某些信息,它们看起来像是Write-Host命令。但是它们可以通过可以被截断的方式产生结果。
  PowerShell针对每种输出方法都有对应的内置配置变量。如果配置变量设置为“Continue”,那么我们即将展示给你的命令就会真正产生输出结果。如果配置变量被设置为“SilentlyContinue”,那么关联的输出命令就不会产生任何信息。表19.1包含了这些Cmdlet的列表。
表19.1 可选的输出Cmdlet

Cmdlet 作用 配置变量
Write-Warning 显示警告信息,默认会以黄色字体显示 默认Continue
Write-Verbose 显示详细信息,默认黄色字体 默认SilentlyContinue
Write-Debug 显示调试信息 默认SilentContinue
Wirte-Error 产生一个错误信息 默认为Continue

标签:输出,19,应用程序,Write,命令,Host,Cmdlet,PowerShell,输入
From: https://www.cnblogs.com/evan-whc/p/17091700.html

相关文章