在 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
r
是 Invoke-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/