当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于 PSConsoleHostReadLine

作者:精品下载站 日期:2024-12-14 02:20:00 浏览:13 分类:玩电脑

关于 PSConsoleHostReadLine


简短描述

说明如何创建自定义 PowerShell 在控制台提示符下读取输入的方式。

详细描述

从 Windows PowerShell 3.0 开始,您可以编写名为 PSConsoleHostReadLine 的函数来重写处理控制台输入的默认方式。

例子

以下示例启动记事本并从用户创建的文本文件中获取输入:

function PSConsoleHostReadLine
{
  $inputFile = Join-Path $env:TEMP PSConsoleHostReadLine
  Set-Content $inputFile "PS > "

  # Notepad opens. Enter your command in it, save the file, and then exit.
  notepad $inputFile | Out-Null
  $userInput = Get-Content $inputFile
  $resultingCommand = $userInput.Replace("PS >", "")
  $resultingCommand
}

评论

默认情况下,PowerShell 以所谓的“Cooked 模式”从控制台读取输入,其中 Windows 控制台子系统处理所有按键、F7 菜单和其他输入。当您按 Enter 或 Tab 时,PowerShell 会获取您此前输入的文本。它无法知道您在按 Enter 或 Tab 之前按下了 Ctrl-R、Ctrl-A、Ctrl-E 或任何其他键。在 Windows PowerShell 3.0 中,PSConsoleHostReadLine 函数解决了此问题。当您在 PowerShell 控制台主机中定义名为 PSConsoleHostReadline 的函数时,PowerShell 会调用该函数而不是“Cooked 模式”输入机制。

参见

  • about_提示

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯