Ось альтернативний підхід, який зберігає вашу історію, не використовуючи інший ярлик PowerShell.
Взято з
https://software.intel.com/en-us/blogs/2014/06/17/giving-powershell-a-persistent-history-of-commands
Відкрийте PowerShell в режимі адміністратора і дізнайтеся, яку версію PowerShell у вас є, запустивши наступну команду:
$PSVersionTable.PSVersion
Вам потрібна версія, що перевищує 3, для запуску цієї програми. Якщо у вас є старіша версія, оновіть її.
Дозвольте PowerShell імпортувати або використовувати скрипти, включаючи модулі, виконавши таку команду:
set-executionpolicy remotesigned
Встановіть PsGet та встановіть потрібні вам модулі, виконавши наступні команди:
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
import-module PsGet
install-module PsUrl
install-module PSReadline
Створіть наступний сценарій
$HistoryFilePath = Join-Path ([Environment]::GetFolderPath('UserProfile')) .ps_history
Register-EngineEvent PowerShell.Exiting -Action { Get-History | Export-Clixml $HistoryFilePath } | out-null
if (Test-path $HistoryFilePath) { Import-Clixml $HistoryFilePath | Add-History }
# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Збережіть файл як C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
, де його слід замінити правильним ім'ям папки на вашому ПК. Не забудьте змінити параметр «зберегти як тип» для всіх файлів.
Закрийте PowerShell та відкрийте його знову, щоб він почав використовувати сценарій, який ми зберегли.
Відтепер,
get-history
Вилучите останні кілька сотень команд, які ви ввели, і ви можете прокручувати між ними клавіші зі стрілками.