@echo off
title Windows Kurtarma Ortami Onarim Yardimcisi - Bilgisayar Borsasi
color 0B
setlocal enabledelayedexpansion

rem Bu dosya KURTARMA ORTAMI (WinRE) komut isteminde calistirilmak uzere yazildi.
rem PowerShell ve WMIC WinRE'de bulunmaz - yalnizca yerlesik araclar kullanilir.

set HERE=%~dp0
if "%HERE:~-1%"=="\" set HERE=%HERE:~0,-1%

cls
echo ============================================================
echo   WINDOWS ACILIS ONARIM YARDIMCISI
echo   bilgisayarborsasi.com.tr
echo ============================================================
echo.
echo  Bu arac HICBIR DISKI BICIMLENDIRMEZ ve veri silmez.
echo  Onyukleme kaydini degistiren adim once yedek alir ve
echo  ayrica onay ister.
echo.

echo  Windows bolumu araniyor...
set WINDRV=
for %%D in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do (
  if exist %%D:\Windows\System32\config\SYSTEM if exist %%D:\Windows\explorer.exe (
    if not defined WINDRV set WINDRV=%%D:
  )
)

if not defined WINDRV (
  echo.
  echo  ############################################################
  echo   WINDOWS BOLUMU BULUNAMADI
  echo  ############################################################
  echo.
  echo   Bu cok onemli bir bulgudur: disk ya BIOS'ta gorunmuyor,
  echo   ya dosya sistemi bozulmus ya da SSD/HDD arizali.
  echo   Bu durumda yazilimsal onarim ise yaramaz.
  echo.
  echo   diskpart ile kontrol edin:  diskpart  ^> list disk  ^> list volume
  echo.
  echo   Cihazi kapatip veri kurtarma icin servise getirin.
  echo   bilgisayarborsasi.com.tr/rehber/baslangic-onarma-bilgisayarinizi-onaramadi
  echo.
  pause
  exit /b
)

echo  Windows bolumu bulundu: %WINDRV%
echo  Bu dosyanin bulundugu yer (USB): %HERE%
echo.

:menu
echo ============================================================
echo   NE YAPILSIN?
echo ============================================================
echo   1 - Baslangic Onarma gunlugunu goster (SrtTrail.txt)
echo   2 - Disk / dosya sistemi onarimi        (chkdsk %WINDRV% /f)
echo   3 - Sistem dosyasi onarimi              (sfc + DISM)
echo   4 - Onyukleme kaydi onarimi             (yedek + bcdboot)
echo   5 - Belgelerimi USB'ye kopyala          (robocopy)
echo   6 - Disk ve bolum listesi               (diskpart)
echo   0 - Cikis
echo.
set SEC=
set /p SEC=Secim (0-6):
echo.

if "%SEC%"=="1" goto log
if "%SEC%"=="2" goto chk
if "%SEC%"=="3" goto sfc
if "%SEC%"=="4" goto boot
if "%SEC%"=="5" goto data
if "%SEC%"=="6" goto disk
if "%SEC%"=="0" exit /b
echo  Gecersiz secim.
echo.
goto menu

:log
set SRT=%WINDRV%\Windows\System32\LogFiles\Srt\SrtTrail.txt
if not exist "%SRT%" set SRT=X:\Windows\System32\LogFiles\Srt\SrtTrail.txt
if exist "%SRT%" (
  copy /y "%SRT%" "%HERE%\SrtTrail.txt" >nul 2>&1
  echo  Gunluk USB'ye kopyalandi: %HERE%\SrtTrail.txt
  echo  Aciliyor...
  notepad "%SRT%"
) else (
  echo  SrtTrail.txt bulunamadi. Baslangic Onarma hic calismamis olabilir.
)
echo.
pause
cls
goto menu

:chk
echo  chkdsk %WINDRV% /f calistirilacak. Bu islem diskteki dosya
echo  sistemi hatalarini onarir ve birkac dakika surebilir.
echo.
echo  UYARI: Diskten tik-tik sesi geliyorsa CALISTIRMAYIN,
echo  veri kurtarma sansini azaltabilir. Once 5. secenekle
echo  belgelerinizi kopyalayin.
echo.
set ONAY=
set /p ONAY=Calistirilsin mi? (E/H):
if /i not "%ONAY%"=="E" (cls & goto menu)
echo.
chkdsk %WINDRV% /f
echo.
pause
cls
goto menu

:sfc
echo  Sistem dosyalari cevrimdisi onarilacak. 10-30 dakika surebilir.
echo.
sfc /scannow /offbootdir=%WINDRV%\ /offwindir=%WINDRV%\Windows
echo.
echo  Simdi bilesen deposu onariliyor (DISM)...
echo.
DISM /Image:%WINDRV%\ /Cleanup-Image /RestoreHealth
echo.
pause
cls
goto menu

:boot
echo  Onyukleme kaydi (BCD) onarilacak.
echo  Once mevcut BCD yedegi USB'ye alinacak.
echo.
set ONAY=
set /p ONAY=Devam edilsin mi? (E/H):
if /i not "%ONAY%"=="E" (cls & goto menu)
echo.
echo  [1/3] BCD yedegi aliniyor...
bcdedit /export "%HERE%\BCD-Yedek" >nul 2>&1
if exist "%HERE%\BCD-Yedek" (echo       TAMAM - %HERE%\BCD-Yedek) else (echo       Yedek alinamadi, yine de devam ediliyor.)
echo.
echo  [2/3] Windows kurulumlari taraniyor...
bootrec /scanos
echo.
echo  [3/3] Onyukleme dosyalari yeniden yaziliyor...
bcdboot %WINDRV%\Windows
echo.
echo  Not: "bootrec /fixboot - Erisim engellendi" mesaji UEFI
echo  sistemlerde normaldir; bcdboot komutu isi yapar.
echo.
echo  Bilgisayari kapatip normal acmayi deneyin.
echo.
pause
cls
goto menu

:data
echo  Belgeleriniz USB'ye kopyalanacak.
echo  Kaynak: %WINDRV%\Users
echo  Hedef : %HERE%\Yedek
echo.
echo  Bu islem dosya boyutuna gore saatler surebilir.
echo.
set ONAY=
set /p ONAY=Baslatilsin mi? (E/H):
if /i not "%ONAY%"=="E" (cls & goto menu)
echo.
robocopy %WINDRV%\Users "%HERE%\Yedek" /E /XJ /R:1 /W:1 /NFL /NDL
echo.
echo  Kopyalama bitti. Hedef: %HERE%\Yedek
echo.
pause
cls
goto menu

:disk
echo  list disk ve list volume ciktisi:
echo.
(echo list disk & echo list volume & echo exit) > "%TEMP%\dp.txt" 2>nul
if not exist "%TEMP%\dp.txt" (echo list disk & echo list volume & echo exit) > "%HERE%\dp.txt"
if exist "%TEMP%\dp.txt" (diskpart /s "%TEMP%\dp.txt") else (diskpart /s "%HERE%\dp.txt")
echo.
echo  Diskiniz listede gorunmuyorsa sorun donanimdadir.
echo.
pause
cls
goto menu
