自定义 PowerShell 提示[关闭]

2024-01-22

我正在寻找自定义 Powershell 的不同示例prompt函数实现。如果您有自己的自定义实现,请发布脚本。现有资源的链接也很好。

发布提示实际外观的屏幕截图(预览)可以获得奖励积分。


这是 jaykul 提示的修改版本。这样做的好处是

-有一个当前历史记录ID,因此您可以非常轻松地调用历史记录中的先前项目(您知道该ID) - 这是一个小提醒 - 我将我的任务添加到提示中,这样我就不会忘记它们(请参阅截图)

function prompt {
  $err = !$?
  $origOfs = $ofs;
  $ofs = "|"
  $toPrompt = "$($global:__PromptVars)"
  $ofs = $origOfs;
  if ($toPrompt.Length -gt 0) { 
    Write-Host "$($toPrompt) >" -ForegroundColor Green -NoNewline }

  $host.UI.RawUI.WindowTitle = "PS1 > " + $(get-location)

  # store the current color, and change the color of the prompt text
  $script:fg = $Host.UI.RawUI.ForegroundColor
  # If there's an error, set the prompt foreground to "Red"
  if($err) { $Host.UI.RawUI.ForegroundColor = 'Red' }
  else { $Host.UI.RawUI.ForegroundColor = 'Yellow' }

  # Make sure that Windows and .Net know where we are at all times
  [Environment]::CurrentDirectory = (Get-Location -PSProvider FileSystem).ProviderPath

  # Determine what nesting level we are at (if any)
  $Nesting = "$([char]0xB7)" * $NestedPromptLevel

  # Generate PUSHD(push-location) Stack level string
  $Stack = "+" * (Get-Location -Stack).count

  # Put the ID of the command in, so we can get/invoke-history easier
  # eg: "r 4" will re-run the command that has [4]: in the prompt
  $nextCommandId = (Get-History -count 1).Id + 1
  # Output prompt string
  # Notice: no angle brackets, makes it easy to paste my buffer to the web
  Write-Host "[${Nesting}${nextCommandId}${Stack}]:" -NoNewLine

  # Set back the color
  $Host.UI.RawUI.ForegroundColor = $script:fg

  if ($toPrompt.Length -gt 0) { 
      $host.UI.RawUI.WindowTitle = "$($toPrompt) -- " + $host.UI.RawUI.WindowTitle
  }
  " "
}
function AddTo-Prompt($str) {
  if (!$global:__PromptVars) { $global:__PromptVars = @() }
  $global:__PromptVars += $str
}
function RemoveFrom-Prompt($str) {
  if ($global:__PromptVars) {
    $global:__PromptVars = @($global:__PromptVars | ? { $_ -notlike $str })
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 PowerShell 提示[关闭] 的相关文章

随机推荐

  • MVC4中ViewBag可以为null吗?

    在MVC4中 是否可以ViewBag永远null 如果是的话 可能是在什么场景下 如果没有 你怎么知道 具体来说 我想知道是否可以null在一个视图中 但是 有关是否可以的其他信息null在控制器中会很有用 例如 我需要执行null che
  • 使用 Vuetify v-btn 和 Vue 路由器在新窗口中打开链接

    Vue Router 的最新版本允许在新选项卡中打开链接 例如下列
  • 如何自定义searchView展开时的“向上”按钮?

    背景 My app https play google com store apps details id com lb app manager能够使用 ActionBar 上的 SearchView 搜索项目 其他应用程序 该应用程序使用
  • EJB 3.1。是否需要@Local注解?

    到目前为止 我几乎总是使用无接口 EJB 并且对 Local 注解的需求有一些了解 考虑这个例子 public interface MyBeanIntf void doStuff Stateless public class MyBean
  • 通用函数和类型如何存储在 rlib 中?

    在C 中 模板不能生成动态库 只能通过头文件来使用 在 C 中 泛型函数和类型可以由 NET 中的中间语言解释 Rust没有虚拟机 泛型可以存储在rlib文件 它是如何实现这一目标的 rlib 文件的格式是什么 An rlib是一个常规静态
  • 使用seaborn绘图时如何处理缺失值?

    我使用 lambda 以下函数将缺失值替换为 NaN data data applymap lambda x np nan if isinstance x basestring and x isspace else x where data
  • 我有这个函数应该计算点数,但它没有添加它们

    我有一个应该计算点数的函数 但它没有添加它们 def Correct totalPoints print Correct totalPoints totalPoints 1 print You have totalPoints points
  • 使用 asyncio (Python 3.4+) 异步接收长时间运行的 shell 命令的输出?

    我试图弄清楚如何以非阻塞方式简单地启动一些长时间运行的 shell 命令 并在它们完成时异步处理它们的输出 按照他们完成的顺序 即使这是他们开始时的另一个顺序 使用 Python 3 4 及更高版本中提供的 asyncio python 库
  • iOS 应用程序的多轨 mp3 播放

    我正在做一个应用程序 涉及以多轨格式 鼓 人声 吉他 钢琴等 播放歌曲 我不需要对每个轨道进行任何花哨的音频处理 我需要做的就是播放 暂停和静音 取消静音每个轨道 我一直在使用 AVAudioPlayer 的多个实例 但在执行设备测试时 我
  • 从构造函数抛出后调用析构函数

    我曾经认为在C 中 如果构造函数抛出异常 则不会调用这个 部分构造 类的析构函数 但在 C 11 中似乎不再如此 我用 g 编译了以下代码并打印 X destructor 到控制台 这是为什么 include
  • 如何使用 AWS IoT 向 Web 浏览器发送消息/从 Web 浏览器接收消息

    我们正在尝试使用 Amazon Web Services 物联网 AWS IoT 从 Web 浏览器发送消息 向 Web 浏览器发送消息 例如 鉴于 AWS IoT 支持 JavaScript 我们expect这是possible 我们已经
  • Github 未检测到新文件夹

    我正在使用连接到我的远程 bitbuckket git 的 Github Windows 客户端 我最近开始在 mobile 中构建应用程序的移动版本 我一直在 localhost WEBSITE NAME 中工作 但现在在 localho
  • 可以将部分域名作为我的路由规则中的参数吗?

    我想要一个路由规则接受我的部分域名作为参数 例如 name mydomain com photos id 这可能吗 我在使用 asp net mvc 时遇到了类似的问题 但使用整个域而不仅仅是子域 我们使用的是自定义路由约束来确定要转到哪个
  • 使用 json (body: raw) POST 数据时总是失败

    我在向服务器发送数据时遇到问题 我正在使用 React Native 和 axios 版本 0 16 2 let input longitude 6 3922782 latitude 106 8268856 content uget uge
  • Jquery Isotope 和 Twitter Bootstrap 网格

    我正在尝试将 jQuery Isotope 与我的 Twitter Bootstrap 网格一起实现 但我陷入了困境 我有一个常用的列引导标记 我有三行 row fluid 每行内有三列 span4 现在 当我在上述列上调用 Isotope
  • 使用弹出界面设计离子选择

    我正在创建一个带有弹出界面的离子选择元素 我想设计离子选择选项的样式 以便它们跨越屏幕的宽度 但我尝试过的任何方法都不起作用
  • 长时间运行的实体框架事务

    当用户打开某个实体的编辑表单时 我想锁定该实体并让她进行任何更改 在编辑过程中 她需要确保没有其他人对其进行任何编辑操作 如何锁定实体框架 C 4 数据库 MS SQL Server 2008 中的实体 提前非常感谢 坏主意 特别是如果您有
  • Actionmailer - Sparkpost 模板和多语言

    这是我第一次在 Rails 项目中设置邮件 我被告知要使用 SparkPost 并为多个操作的不同语言创建模板 为了简单起见 我们假设一封 user signed up user 邮件 目前我的设置有效 安装的宝石 sparkpost ma
  • 在服务器 JRE 与 JRE 中运行应用程序的主要区别是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在oracle网站上看到有两种类型的jre下载 在服务器 JRE 与 JRE 中运行我的应用程序有什么区别 选择一种运行时环境而不是另一
  • 自定义 PowerShell 提示[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi