@echo off
setlocal enabledelayedexpansion

REM ====================================================
REM 检查必要的环境变量是否已设置
REM ====================================================
if "%SHARE_USER%"=="" (
    echo [错误] 环境变量 SHARE_USER 未设置，请先设置该变量。
    pause
    exit /b 1
)

if "%SHARE_PASS%"=="" (
    echo [警告] 环境变量 SHARE_PASS 为空，将使用空密码尝试连接。
    REM 如果共享允许空密码，则可继续；否则可能失败。
)

echo 正在检查 Q: 盘是否可访问...
dir Q:\ >nul 2>&1

if errorlevel 1 (
    echo Q: 盘不可访问，正在重新映射...
    
    REM 删除可能存在的旧映射（忽略错误）
    net use Q: /delete /y >nul 2>&1
    
    REM 使用环境变量中的用户名和密码建立新映射
    REM 注意：密码用双引号括起来，以防包含空格或特殊字符
    net use Q: \\172.20.100.12\share /user:%SHARE_USER% "%SHARE_PASS%" /persistent:yes
    
    if errorlevel 1 (
        echo [失败] 重新映射失败，请检查网络连接、共享权限或用户名/密码是否正确。
    ) else (
        echo [成功] Q: 盘已指向 \\172.20.100.12\share。
    )
) else (
    echo Q: 盘可正常访问，无需操作。
)

endlocal
pause
