Azure PowerShell会记住命令行历史记录(几十年来几乎可以使用shell),但不幸的是,它在退出并重新启动后很快就会遭受完全失忆。因此它无法在会话之间记住它。
有没有办法让 Azure PowerShell 在下一个会话中记住命令行历史记录?
答案 0 :(得分:2)
我目前的方法基于this article:
第1步:创建PowerShell配置文件see Example 3 here。如果已存在,请跳至步骤2.
第2步:将其添加到您的个人资料中。
$MaximumHistoryCount = 1KB
if (!(Test-Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv"))
{ New-Item "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" -ItemType File -Force
}
function bye
{ Get-History -Count $MaximumHistoryCount | Export-CSV -Path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv"
exit
}
if (Test-path "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv")
{ Import-CSV "$((Get-ChildItem $PROFILE).DirectoryName)\history.csv" | Add-History
}
register-engineevent PowerShell.Exiting -action { bye }
注意:
Get-History
和Invoke-History
运行以前的命令。#[tab]
,例如:输入#5,然后按Tab键展开原始命令。exit
而不是关闭窗口退出PowerShell时才会保存历史记录。其他资源和一些替代方法:
PSReadLine提供"自动保存历史记录,包括在实时会话中共享历史记录。" PSReadLine还做了很多事情,而不仅仅是历史保存。此外,如果您想要在历史记录中上下变得更有用,那么最后一个列出了使其更有用的其他键绑定。