@echo off chcp 65001 >nul title Spielplan - Epic Export echo. echo SPIELPLAN - Epic Games Export echo Liest deine komplette Epic-Bibliothek aus. Kein Login noetig. echo. set "PS=%TEMP%\spielplan_epic_%RANDOM%.ps1" >"%PS%" ( echo $ErrorActionPreference = 'Stop' echo $cat = Join-Path $env:ProgramData 'Epic\EpicGamesLauncher\Data\Catalog\catcache.bin' echo $man = Join-Path $env:ProgramData 'Epic\EpicGamesLauncher\Data\Manifests' echo $titles = New-Object System.Collections.Generic.HashSet[string] echo if ^(Test-Path $cat^) { echo try { echo $json = [Text.Encoding]::UTF8.GetString^([Convert]::FromBase64String^([IO.File]::ReadAllText^($cat^)^)^) echo foreach ^($e in ^($json ^| ConvertFrom-Json^)^) { echo if ^($e.namespace -eq 'ue' -or $e.namespace -eq 'fn'^) { continue } echo $paths = @^($e.categories ^| ForEach-Object { $_.path }^) echo if ^($paths -contains 'games' -and -not ^($paths -contains 'addons'^)^) { echo if ^($e.title^) { [void]$titles.Add^($e.title.Trim^(^)^) } echo } echo } echo } catch { Write-Host 'Katalog-Cache unlesbar, nutze Manifeste.' -ForegroundColor Yellow } echo } echo if ^(Test-Path $man^) { echo Get-ChildItem $man -Filter *.item ^| ForEach-Object { echo try { $d = Get-Content $_.FullName -Raw ^| ConvertFrom-Json echo if ^($d.DisplayName -and -not $d.bIsIncompleteInstall^) { [void]$titles.Add^($d.DisplayName.Trim^(^)^) } } catch {} echo } echo } echo if ^($titles.Count -eq 0^) { echo Write-Host 'Keine Bibliothek gefunden. Starte den Epic Launcher einmal und melde dich an.' -ForegroundColor Red echo Read-Host 'Enter zum Schliessen'; exit 1 echo } echo $out = Join-Path ^([Environment]::GetFolderPath^('Desktop'^)^) 'epic_games.txt' echo ^($titles ^| Sort-Object^) ^| Set-Content $out -Encoding UTF8 echo $n = $titles.Count echo Write-Host '' echo Write-Host " Fertig: $n Spiele gespeichert." -ForegroundColor Green echo Write-Host " $out" -ForegroundColor Gray echo Write-Host '' echo Write-Host ' Jetzt in Spielplan hochladen: Spielerkarte -^> Epic-Button' -ForegroundColor Cyan echo Write-Host '' echo Read-Host ' Enter zum Schliessen' ) powershell -NoProfile -ExecutionPolicy Bypass -File "%PS%" del "%PS%" 2>nul