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

Автоматично записване на историята на 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 профила.

Стъпки:

  1. Отвори 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:

  1. Отвори Task Scheduler (Win + R → въведи taskschd.msc → Enter).
  2. В десния панел кликни Create Basic Task…
  3. Въведи име, напр. Winget History Logger, и натисни Next.
  4. Избери When I log on и натисни Next.
  5. Избери Start a Program и натисни Next.
  6. В полето 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"

  1. Натисни 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 команди, които си изпълнявал. 🚀

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

×