Автоматично записване на историята на winget с PowerShell

Windows Package Manager (winget
) е мощен инструмент за инсталиране, актуализиране и премахване на софтуер в Windows. Въпреки това, той няма вградена команда за преглед на историята на изпълнените операции.
В тази статия ще покажем как да автоматизираме записването на историята на използваните winget
команди с помощта на PowerShell.
1. Ръчно записване на историята на winget
PowerShell автоматично записва всички изпълнени команди във файл, наречен ConsoleHost_history.txt. Ние ще извлечем само winget
командите и ще ги запишем в отделен файл.
Запазване на командите в текстов файл
Изпълни следната команда в PowerShell:
$history = "$env:USERPROFILE\Desktop\winget-history.txt"
Get-Content (Get-PSReadLineOption).HistorySavePath | Select-String "winget" | Out-File -Append -Encoding UTF8 $history
Какво прави този код?
- Създава (или допълва) файла
winget-history.txt
на десктопа. - Прочита PowerShell историята (
ConsoleHost_history.txt
). - Извлича само командите, съдържащи
winget
. - Добавя резултата в
winget-history.txt
без да презаписва старите данни.
2. Автоматично записване на историята при стартиране на PowerShell
Ако искаш командата да се изпълнява автоматично при всяко стартиране на PowerShell, можеш да я добавиш в PowerShell профила.
Стъпки:
- Отвори PowerShell и изпълни:
notepad $PROFILE
Ако получиш грешка „The system cannot find the path specified.“, създай профилния файл с:
New-Item -ItemType File -Path $PROFILE -Force
notepad $PROFILE
Добави следния код във файла:
$history = "$env:USERPROFILE\Desktop\winget-history.txt"
Get-Content (Get-PSReadLineOption).HistorySavePath | Select-String "winget" | Out-File -Append -Encoding UTF8 $history
Запази и затвори Notepad.
Резултат:
Всеки път, когато отвориш PowerShell, командата ще се изпълнява автоматично и ще записва историята на winget
в winget-history.txt
.
3. Автоматично стартиране при всяко влизане в Windows
Ако искаш winget-history.txt
да се актуализира без да отваряш PowerShell, можеш да използваш Task Scheduler.
Стъпки за настройка в Task Scheduler:
- Отвори Task Scheduler (
Win + R
→ въведиtaskschd.msc
→ Enter). - В десния панел кликни Create Basic Task…
- Въведи име, напр. Winget History Logger, и натисни Next.
- Избери When I log on и натисни Next.
- Избери Start a Program и натисни Next.
- В полето Program/script въведи:
powershell.exe
В полето Add arguments въведи:
-Command "Get-Content (Get-PSReadLineOption).HistorySavePath | Select-String 'winget' | Out-File -Append -Encoding UTF8 $env:USERPROFILE\Desktop\winget-history.txt"
- Натисни Finish.
Резултат:
Всеки път, когато влизаш в Windows, историята на winget
ще се записва автоматично, без да се налага да стартираш PowerShell ръчно.
4. Автоматично архивиране на историята веднъж дневно
Ако искаш да запазваш историята във файл с дата, за да имаш архив, можеш да използваш следния код:
$history = "$env:USERPROFILE\Desktop\winget-history.txt"
Get-Content (Get-PSReadLineOption).HistorySavePath | Select-String "winget" | Out-File -Append -Encoding UTF8 $history
Това ще създава нов файл всеки ден, например:
python-replwinget-history-2025-03-29.txt
winget-history-2025-03-30.txt
...
Можеш да настроиш този код да се изпълнява всеки ден чрез Task Scheduler.
Заключение
✔ Метод 1: Ръчно – стартираш командата, когато ти е нужно.
✔ Метод 2: PowerShell профил – историята се записва при всяко стартиране на PowerShell.
✔ Метод 3: Task Scheduler – историята се записва автоматично при всяко влизане в Windows.
✔ Метод 4: Дневно архивиране – историята се съхранява по дни.
С тези методи можеш лесно да следиш всички winget
команди, които си изпълнявал. 🚀
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut