scripts/winget_apps.bat

81 lines
5.0 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

@echo off
REM Установить перечисленные приложения через winget и создать ярлыки в Start Menu -> Critical Fixes
REM Запускать с правами администратора. Проверьте id через `winget search <name>` при ошибках.
SET "DEST_DIR=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Critical Fixes"
mkdir "%DEST_DIR%" 2>nul
REM ---------- Установка приложений (при необходимости замените --name на --id после проверки) ----------
winget install --name "Advanced IP Scanner" -e --accept-source-agreements --accept-package-agreements
winget install --name "ATTO Disk Benchmark" -e --accept-source-agreements --accept-package-agreements
winget install --name "Autoruns" -e --accept-source-agreements --accept-package-agreements
winget install --name "BlueScreenView" -e --accept-source-agreements --accept-package-agreements
winget install --name "Bulk Crap Uninstaller" -e --accept-source-agreements --accept-package-agreements
winget install --name "CPU-Z" -e --accept-source-agreements --accept-package-agreements
winget install --name "CrystalDiskInfo" -e --accept-source-agreements --accept-package-agreements
winget install --name "CutLongNames" -e --accept-source-agreements --accept-package-agreements
winget install --name "Devices clean" -e --accept-source-agreements --accept-package-agreements
winget install --name "Far Manager" -e --accept-source-agreements --accept-package-agreements
winget install --name "FlashCard Recovery" -e --accept-source-agreements --accept-package-agreements
winget install --name "GPU-Z" -e --accept-source-agreements --accept-package-agreements
winget install --name "HDD-Speed" -e --accept-source-agreements --accept-package-agreements
winget install --name "HWiNFO" -e --accept-source-agreements --accept-package-agreements
winget install --name "Process Hacker" -e --accept-source-agreements --accept-package-agreements
winget install --name "Process Monitor" -e --accept-source-agreements --accept-package-agreements
winget install --name "Unlocker" -e --accept-source-agreements --accept-package-agreements
winget install --name "Victoria" -e --accept-source-agreements --accept-package-agreements
REM ---------- Создать PowerShell-скрипт для поиска исполняемых файлов и создания ярлыков ----------
SET "PSFILE=%TEMP%\create_critical_fixes_shortcuts.ps1"
> "%PSFILE%" (
echo $dest = "%DEST_DIR%"
echo if (-not (Test-Path $dest)) { New-Item -Path $dest -ItemType Directory | Out-Null }
echo $searchPaths = @("C:\Program Files","C:\Program Files (x86)","C:\Users\Public\Desktop","C:\ProgramData")
echo $apps = @(
echo @{Name='Advanced IP Scanner'; Pattern='advancedip|advanced ip'},
echo @{Name='ATTO Disk Benchmark'; Pattern='atto'},
echo @{Name='Autoruns'; Pattern='autoruns'},
echo @{Name='BlueScreen Viewer'; Pattern='bluescreen|bluescreenviewer'},
echo @{Name='Bulk Crap Uninstaller'; Pattern='bulk|bcuninstall|bcuri'},
echo @{Name='CPU-Z'; Pattern='cpuz'},
echo @{Name='CrystalDiskInfo'; Pattern='crystaldiskinfo|crystaldisk'},
echo @{Name='CutLongNames'; Pattern='cutlongnames'},
echo @{Name='Devices clean'; Pattern='devices.*clean|devicesclean'},
echo @{Name='Far Manager'; Pattern='far.exe|farmanager|far'},
echo @{Name='FlashCard Recovery'; Pattern='flashcard|flash card|flashcardrecovery'},
echo @{Name='GPU-Z'; Pattern='gpu-z|gpu_z|gpuz'},
echo @{Name='HDD-Speed'; Pattern='hdd-speed|hddspeed'},
echo @{Name='HWiNFO'; Pattern='hwinfo'},
echo @{Name='Process Hacker'; Pattern='processhacker|process hacker'},
echo @{Name='Process Monitor'; Pattern='procmon|processmonitor|process monitor'},
echo @{Name='Unlocker'; Pattern='unlocker'},
echo @{Name='Victoria'; Pattern='victoria'}
echo )
echo $shell = New-Object -ComObject WScript.Shell
echo foreach ($app in $apps) {
echo Write-Host "Searching for" $app.Name
echo $found = $null
echo foreach ($p in $searchPaths) {
echo try {
echo $found = Get-ChildItem -Path $p -Include *.exe -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -imatch $app.Pattern } | Select-Object -First 1
echo } catch {}
echo if ($found) { break }
echo }
echo if ($found) {
echo $lnk = $shell.CreateShortcut((Join-Path $dest ($app.Name + '.lnk')))
echo $lnk.TargetPath = $found.FullName
echo $lnk.WorkingDirectory = $found.DirectoryName
echo $lnk.IconLocation = $found.FullName
echo $lnk.Save()
echo Write-Host "Created shortcut for" $app.Name "->" $found.FullName
echo } else {
echo Write-Host "Executable not found for" $app.Name " — проверьте имя пакета или путь установки."
echo }
echo }
)
powershell -NoProfile -ExecutionPolicy Bypass -File "%PSFILE%"
del "%PSFILE%" 2>nul
echo Готово. Проверьте папку "%DEST_DIR%" для ярлыков.
pause