我想创建命令的干净历史一个特定的任务。其结果是,我想具体的命令,以保持在历史和命令不保留。例如,为了防止命令从进入历史,我想可以这样运行的东西:
cls -no-history
这将防止cls
命令弄乱历史。从目前来看,我只是跑clear-history -id 7
,例如,删除特定的历史记录项。
这是一个非常有趣的问题。我想我已经想出了一个办法,将真正为你做这个,但是你需要定义一个函数,然后管你想从历史到该功能的命令。
function Skip-History {
[CmdletBinding()]
param(
[Parameter(
ValueFromPipeline=$true
)]
[Object]
$o
)
Begin {
$history = Get-History
}
Process {
$o
}
End {
Clear-History
$history | Add-History
}
}
要使用它:
cls | Skip-History
Get-Process | Skip-History
这样做的缺点是,它会不断地被重新编号的历史标识,如果该事项。
此外,通过进一步的实验,似乎这是行不通的,除非你在管道中的每一小命令后直接使用。所以,如果你想隐藏Get-Process | Sort-Object
你将不得不这样称呼它:
Get-Process | Skip-History | Sort-Object | Skip-History
注意,由于Windows 10的你还需要删除任何新条目从%USERPROFILE%\应用程序数据\漫游\微软\的Windows \ PowerShell的\ PSReadline \ ConsoleHost_history.txt否则仍然会出现在以前的“向上箭头键”列表命令。
你可以用文本编辑器做到这一点。