powershell - 相当于PowerShell中的历史扩展?

标签 powershell

在 bash(或 zsh)中,我输入 !$获取最后一个命令的最后一个参数,!!获得整行等。Powershell 中的等价物(具有相同的易用性)是什么?我看到 PSReadline 有 Alt+.,但在我按下 Enter 键后寻找可以扩展的东西。

最佳答案

如果你看 about_Automatic_Variables它包含有关如何获取第一个或最后一个参数的详细信息。

  • $$: Contains the last token in the last line received by the session.
  • $^: Contains the first token in the last line received by the session.

这应该涵盖 !$ 的使用在 bash 中。以下是它们的使用示例:
PS Z:\> Get-ChildItem c:\temp -Directory
                                                                                         
... Output truncated...

PS Z:\> $$
-Directory

PS Z:\> $^
Get-ChildItem
那些只会返回它们所代表的字符串。然而,对于超过 3 个 token 的命令,它不是很有用。
至于!!您拥有的选项之一是:
调用历史
更多关于它的使用来自 TechNet但以其最简单的形式
PS Z:\> Get-Item c:\temp
   Directory: C:\
Mode                LastWriteTime     Length Name                                                                                                            
----                -------------     ------ ----                                                                                                            
d----          4/1/2015   3:06 PM            temp                                                                                                            

PS Z:\> r
Get-Item c:\temp

    Directory: C:\
Mode                LastWriteTime     Length Name                                                                                                            
----                -------------     ------ ----                                                                                                            
d----          4/1/2015   3:06 PM            temp    
rInvoke-History 的别名如果您重视简洁,可以使用 cmdlet。您会在 r 正下方看到它是正在执行的命令。这当然与上面的行相匹配。
获取历史
至于只是返回一个字符串,应该实际执行它,然后 Get-History将是一个提供的解决方案。虽然在实践中它不像上面显示的那样简洁。
(Get-History -Count 1).CommandLine
或者为了简洁起见,使用别名和明确的参数表示法。
(h -c 1).CommandLine
这将返回输入的最后一个命令。由于 History 是一个对象集合,我们需要使用该属性来获取我们要查找的内容。没有什么能阻止你把它变成一个函数并将它添加到你的个人资料中。
PowerShell 历史记录选项卡完成
所以这对我来说是新的,我找不到讨论它的 Microsoft 引用。我们拥有的最近的是 blog post from Shay Levy at PowerShellMagazine .
它讨论了使用数字符号/尖锐符号将历史命令调用到控制台。要获取最后一条命令,您可以输入 #然后点击标签。
它还响应历史索引。因此,要从 PowerShell session 开始获取第三个命令,您需要输入 #3然后点击标签

关于powershell - 相当于PowerShell中的历史扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29468104/

相关文章:

powershell - 从表输出中删除椭圆

python-2.7 - 如何通过 Python 脚本运行 Powershell 函数

Powershell 应用程序池设置周期性重启语法

powershell - 链式 powershell 替换命令是否一个接一个地执行?

powershell - 10 小时后长时间运行的 Exchange powershell 脚本中的 Kerberos 错误

performance - Git注意到性能和替代方案

windows - Strawberry Perl——默认情况下编码转换在哪里完成?

Excel,运行后保存并关闭

html - 解析本地 HTML 文件

powershell - 如何在 Powershell 中处理包含括号的变量