@echo off
cd /d "%~dp0"  :: 强制切换到脚本所在目录
chcp 936 > nul
cls
setlocal enabledelayedexpansion

:: 配置参数
set "timeout_sec=5"             :: 等待时间(秒)
set "txt_dir=%~dp0keys"             :: txt文件存放目录
set "default_file=default.txt"  :: 默认文件名

:: 检查PowerShell脚本
set "PS_SCRIPT=%~dp0HideColumns.ps1"
if not exist "%PS_SCRIPT%" (
    echo [错误] 未找到脚本文件: %PS_SCRIPT%
    pause
    exit /b 1
)

:: 检查keys目录是否存在
if not exist "%txt_dir%\" (
    echo [错误] 目录 %txt_dir% 不存在！
    pause
    exit /b 1
)

:: 获取TXT文件列表（优先处理default.txt）
echo QQ:859412787
echo 可用的TXT文件列表：
echo --------------------------

set /a count=0
set "default_found=0"

:: 先检查default.txt
if exist "%txt_dir%\%default_file%" (
    set /a count+=1
    echo [1] %txt_dir%\%default_file%
    set "file_1=%txt_dir%\%default_file%"
    set "default_found=1"
)

:: 添加其他txt文件（排除default.txt）
for /f "delims=" %%f in ('dir /b /a-d "%txt_dir%\*.txt" ^| findstr /i /v /x "%default_file%"') do (
    set /a count+=1
    echo [!count!] %txt_dir%\%%f
    set "file_!count!=%txt_dir%\%%f"
)

:: 无文件时退出
if %count%==0 (
    echo [错误] %txt_dir% 目录中没有TXT文件！
    pause
    exit /b 1
)

:: 设置默认选择
if %default_found%==1 (
    set "default_index=1"
    echo [提示] 已设置默认文件 %txt_dir%\%default_file% 为选项1
) else (
    set "default_index=1"
    echo [提示] 未找到默认文件，默认选择第一个文件
)

echo.
echo 请选择文件编号 (1-%count%)：
echo 默认等待 %timeout_sec% 秒后自动选择 %default_index% ...

:: choice命令只支持最多9个选项，限制在9以内
if %count% gtr 9 (
    echo [警告] 文件数超过9个，只能选择前9个文件！
    set "count=9"
)

:: 构造choice允许的字符集
set "choice_chars=123456789"
set "choice_chars=!choice_chars:~0,%count%!"

choice /C %choice_chars% /N /T %timeout_sec% /D %default_index% > nul

:: choice返回值是选择的字符位置（1开始）
set /a choice_index=%errorlevel%

:: 验证选择有效性
if %choice_index% lss 1 set /a choice_index=%default_index%
if %choice_index% gtr %count% set /a choice_index=%default_index%

:: 获取选择的文件
for /f "tokens=1,* delims==" %%a in ('set file_%choice_index%') do (
    set "KEYWORDS_FILE=%%b"
)

echo.
echo [信息] 开始使用文件: !KEYWORDS_FILE!
powershell.exe -NoProfile -NoLogo -ExecutionPolicy Bypass -File "%PS_SCRIPT%" -keywordsFile "!KEYWORDS_FILE!"
echo [信息] 执行完成: !KEYWORDS_FILE!

echo.
timeout /t 45 /nobreak > nul

exit /b 0
