2025-02-15 14:31:02 +08:00
|
|
|
|
@echo off
|
2025-02-17 00:09:45 +08:00
|
|
|
|
chcp 65001 >nul
|
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
|
|
|
|
|
|
REM 请确保本文件以 UTF-8 带 BOM 编码保存
|
|
|
|
|
|
|
|
|
|
set "PROJECT_DIR=%~dp0"
|
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
|
|
|
|
|
REM 定义模型文件的路径
|
|
|
|
|
set "NEURAL_HAIRCUT_FOLDER_PATH=resource\NeuralHaircut"
|
|
|
|
|
set "PIXIE_PATH=resource\NeuralHaircut\PIXIE\pixie_data\pixie_data"
|
|
|
|
|
set "MATTE_PATH=resource\Matte-Anything\model.pth"
|
|
|
|
|
set "SAM_PATH=resource\Matte-Anything\sam_vit_h_4b8939.pth"
|
|
|
|
|
set "DINO_PATH=resource\Matte-Anything\groundingdino_swint_ogc.pth"
|
|
|
|
|
set "OPENPOSE_PATH=resource\openpose\models\pose\coco\pose_iter_584000.caffemodel"
|
|
|
|
|
set "HYPERIQA_PATH=resource\hyperIQA\pretrained\hyperIQA.pth"
|
|
|
|
|
|
|
|
|
|
REM ========================================================================
|
|
|
|
|
REM 1. 检查已有模型文件(使用 [√] 和 [×] 提示)
|
|
|
|
|
REM ========================================================================
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo 正在检查已有模型文件...
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set MISSING_FILES=0
|
|
|
|
|
set /A TOTAL_FILES=7
|
|
|
|
|
set /A EXISTING_FILES=0
|
|
|
|
|
set "MISSING_LIST="
|
2025-02-16 22:42:15 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\diffusion_prior\dif_ckpt.pt" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] Neural Haircut Diffusion Prior模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少Neural Haircut Diffusion Prior模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!Neural Haircut Diffusion Prior, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\strand_prior\strand_ckpt.pt" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] Neural Haircut Strand Prior模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少Neural Haircut Strand Prior模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!Neural Haircut Strand Prior, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%PIXIE_PATH%" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] PIXIE模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少PIXIE模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!PIXIE, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%SAM_PATH%" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] SAM模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少SAM模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!SAM, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%DINO_PATH%" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] GroundingDINO模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少GroundingDINO模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!GroundingDINO, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%MATTE_PATH%" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] Matte-Anything模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少Matte-Anything模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!Matte-Anything, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
if exist "%OPENPOSE_PATH%" (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [√] OpenPose模型已存在
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A EXISTING_FILES+=1
|
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo [×] 缺少OpenPose模型
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set /A MISSING_FILES+=1
|
|
|
|
|
set "MISSING_LIST=!MISSING_LIST!OpenPose, "
|
2025-02-16 22:42:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
echo.
|
|
|
|
|
echo 已存在 %EXISTING_FILES%/%TOTAL_FILES% 个模型文件
|
2025-02-17 00:17:01 +08:00
|
|
|
|
if !MISSING_FILES! GTR 0 (
|
|
|
|
|
echo 需要下载 !MISSING_FILES! 个模型文件
|
|
|
|
|
set "TMP=!MISSING_LIST!"
|
|
|
|
|
set "TMP=!TMP:~0,-2!"
|
|
|
|
|
echo 缺少的模型: !TMP!
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo.
|
|
|
|
|
echo ************************************************************
|
|
|
|
|
echo * 开始下载所需资源文件 *
|
|
|
|
|
echo * 下载时间取决于您的网络连接速度 *
|
|
|
|
|
echo * 请耐心等待... *
|
|
|
|
|
echo ************************************************************
|
2025-02-17 00:09:45 +08:00
|
|
|
|
) else (
|
2025-02-16 22:42:15 +08:00
|
|
|
|
echo 所有模型文件已存在,无需下载
|
|
|
|
|
exit /b 0
|
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM ========================================================================
|
|
|
|
|
REM 2. 基础环境配置:检查 Python、更新 pip、安装 gdown、检查 7-Zip
|
|
|
|
|
REM ========================================================================
|
2025-02-16 22:14:53 +08:00
|
|
|
|
echo ======================================= 基础环境配置 ==============================================
|
|
|
|
|
echo.
|
|
|
|
|
echo **************************************************************************************************
|
|
|
|
|
echo * 基础环境配置 *
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo * 检查Python是否安装,更新pip,安装gdown *
|
2025-02-16 22:14:53 +08:00
|
|
|
|
echo * 请耐心等待... *
|
|
|
|
|
echo **************************************************************************************************
|
|
|
|
|
echo.
|
2025-02-17 00:09:45 +08:00
|
|
|
|
|
|
|
|
|
REM 检查 Python 是否安装
|
2025-02-15 16:08:48 +08:00
|
|
|
|
python --version >nul 2>nul
|
2025-02-15 14:46:18 +08:00
|
|
|
|
IF %ERRORLEVEL% NEQ 0 (
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "错误:未找到Python"
|
|
|
|
|
echo "请安装Python并将其添加到系统环境变量PATH中"
|
2025-02-15 16:08:48 +08:00
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 更新 pip
|
2025-02-15 16:42:39 +08:00
|
|
|
|
python -m pip install --upgrade pip
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 检查是否已安装 gdown
|
2025-02-15 21:12:05 +08:00
|
|
|
|
python -c "import gdown" >nul 2>nul
|
|
|
|
|
IF %ERRORLEVEL% EQU 0 (
|
|
|
|
|
echo gdown已安装,跳过安装步骤...
|
|
|
|
|
) ELSE (
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "正在安装gdown..."
|
2025-02-15 21:12:05 +08:00
|
|
|
|
python -m pip install --user gdown --upgrade
|
|
|
|
|
python -m pip install --user requests --upgrade
|
|
|
|
|
IF %ERRORLEVEL% NEQ 0 (
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "错误:gdown安装失败"
|
|
|
|
|
echo "请检查网络连接后重试"
|
2025-02-15 21:12:05 +08:00
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
2025-02-15 16:08:48 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
REM 添加Python Scripts目录到PATH
|
|
|
|
|
for /f "tokens=*" %%i in ('python -c "import sys; print(sys.executable)"') do set PYTHON_PATH=%%i
|
|
|
|
|
set PYTHON_SCRIPTS_PATH=%PYTHON_PATH:python.exe=Scripts%
|
|
|
|
|
set PYTHON_USER_SCRIPTS=%USERPROFILE%\AppData\Roaming\Python\Python3*\Scripts
|
|
|
|
|
set PATH=%PYTHON_SCRIPTS_PATH%;%PYTHON_USER_SCRIPTS%;%PATH%
|
|
|
|
|
|
2025-02-16 22:14:53 +08:00
|
|
|
|
REM 检查7-Zip是否安装
|
|
|
|
|
where 7z >nul 2>nul
|
|
|
|
|
IF %ERRORLEVEL% NEQ 0 (
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "错误:未找到7-Zip"
|
|
|
|
|
echo "请从 https://7-zip.org/ 下载并安装7-Zip"
|
|
|
|
|
echo "并将其添加到系统环境变量PATH中"
|
2025-02-16 22:14:53 +08:00
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 验证 gdown 是否可用
|
2025-02-15 16:42:39 +08:00
|
|
|
|
echo 正在验证gdown安装...
|
2025-02-15 16:36:21 +08:00
|
|
|
|
python -c "import gdown" >nul 2>nul
|
2025-02-15 16:08:48 +08:00
|
|
|
|
IF %ERRORLEVEL% NEQ 0 (
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "错误:gdown安装验证失败"
|
|
|
|
|
echo "请重新运行脚本"
|
2025-02-15 14:46:18 +08:00
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
2025-02-17 00:09:45 +08:00
|
|
|
|
echo "gdown安装成功!"
|
2025-02-15 16:36:21 +08:00
|
|
|
|
echo.
|
2025-02-15 14:46:18 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM ========================================================================
|
|
|
|
|
REM 3. 根据验证结果下载缺失的模型文件
|
|
|
|
|
REM ========================================================================
|
2025-02-16 22:14:53 +08:00
|
|
|
|
echo ======================================= 开始下载所需资源文件 =======================================
|
2025-02-16 18:59:38 +08:00
|
|
|
|
echo.
|
2025-02-16 22:14:53 +08:00
|
|
|
|
echo **************************************************************************************************
|
|
|
|
|
echo * 开始下载所需资源文件 *
|
|
|
|
|
echo * 下载时间取决于您的网络连接速度 *
|
|
|
|
|
echo * 请耐心等待... *
|
|
|
|
|
echo **************************************************************************************************
|
2025-02-16 18:59:38 +08:00
|
|
|
|
echo.
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 Neural Haircut Diffusion Prior 模型
|
|
|
|
|
if not exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\diffusion_prior\dif_ckpt.pt" (
|
|
|
|
|
echo [1/%MISSING_FILES%] 正在下载 Neural Haircut Diffusion Prior模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\diffusion_prior" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\NeuralHaircut"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
python -m gdown --folder "https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\diffusion_prior\dif_ckpt.pt" (
|
2025-02-16 22:46:30 +08:00
|
|
|
|
echo 错误:Neural Haircut Diffusion Prior模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
2025-02-16 22:40:27 +08:00
|
|
|
|
)
|
2025-02-16 18:38:41 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 Neural Haircut Strand Prior 模型
|
|
|
|
|
if not exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\strand_prior\strand_ckpt.pt" (
|
|
|
|
|
echo [2/%MISSING_FILES%] 正在下载 Neural Haircut Strand Prior模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\NeuralHaircut\pretrained_models\strand_prior" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\NeuralHaircut"
|
2025-02-16 22:46:30 +08:00
|
|
|
|
python -m gdown --folder "https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%NEURAL_HAIRCUT_FOLDER_PATH%\pretrained_models\strand_prior\strand_ckpt.pt" (
|
2025-02-16 22:46:30 +08:00
|
|
|
|
echo 错误:Neural Haircut Strand Prior模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
2025-02-16 22:40:27 +08:00
|
|
|
|
)
|
2025-02-16 18:38:41 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 PIXIE 模型
|
|
|
|
|
if not exist "%PIXIE_PATH%" (
|
|
|
|
|
echo [3/%MISSING_FILES%] 正在下载 PIXIE模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\NeuralHaircut\PIXIE" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\NeuralHaircut\PIXIE"
|
|
|
|
|
python -m gdown "1mPcGu62YPc4MdkT8FFiOCP629xsENHZf" && tar -xvzf pixie_data.tar.gz && rm pixie_data.tar.gz
|
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%PIXIE_PATH%" (
|
2025-02-16 22:46:30 +08:00
|
|
|
|
echo 错误:PIXIE模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
2025-02-16 22:40:27 +08:00
|
|
|
|
)
|
2025-02-16 18:38:41 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 hyperIQA 模型
|
|
|
|
|
if not exist "%HYPERIQA_PATH%" (
|
|
|
|
|
echo [4/%MISSING_FILES%] 正在下载 hyperIQA模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\hyperIQA\pretrained" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\hyperIQA\pretrained"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
python -m gdown "1OOUmnbvpGea0LIGpIWEbOyxfWx6UCiiE"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%HYPERIQA_PATH%" (
|
2025-02-16 22:40:27 +08:00
|
|
|
|
echo 错误:hyperIQA模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
2025-02-16 18:24:59 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 SAM 模型
|
|
|
|
|
if not exist "%SAM_PATH%" (
|
|
|
|
|
echo [5/%MISSING_FILES%] 正在下载 SAM模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\Matte-Anything\pretrained" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\Matte-Anything\pretrained"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
wget "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%SAM_PATH%" (
|
2025-02-16 22:40:27 +08:00
|
|
|
|
echo 错误:SAM模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 GroundingDINO 模型
|
|
|
|
|
if not exist "%DINO_PATH%" (
|
|
|
|
|
echo [6/%MISSING_FILES%] 正在下载 GroundingDINO模型...
|
|
|
|
|
cd "%PROJECT_DIR%\resource\Matte-Anything\pretrained"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
wget "https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%DINO_PATH%" (
|
2025-02-16 22:40:27 +08:00
|
|
|
|
echo 错误:GroundingDINO模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 Matte-Anything 模型
|
|
|
|
|
if not exist "%MATTE_PATH%" (
|
|
|
|
|
echo [7/%MISSING_FILES%] 正在下载 Matte-Anything模型...
|
|
|
|
|
cd "%PROJECT_DIR%\resource\Matte-Anything\pretrained"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
python -m gdown "1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW"
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%MATTE_PATH%" (
|
2025-02-16 22:40:27 +08:00
|
|
|
|
echo 错误:Matte-Anything模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
2025-02-16 18:24:59 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 下载 OpenPose 模型
|
|
|
|
|
if not exist "%OPENPOSE_PATH%" (
|
|
|
|
|
echo [8/%MISSING_FILES%] 正在下载 OpenPose模型...
|
|
|
|
|
mkdir "%PROJECT_DIR%\resource\openpose\models\pose\coco" >nul 2>&1
|
|
|
|
|
cd "%PROJECT_DIR%\resource\openpose\models\pose\coco"
|
2025-02-16 22:40:27 +08:00
|
|
|
|
python -m gdown "1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV" && tar -xvzf models.tar.gz && rm models.tar.gz
|
2025-02-17 00:09:45 +08:00
|
|
|
|
cd "%PROJECT_DIR%"
|
|
|
|
|
if not exist "%OPENPOSE_PATH%" (
|
2025-02-16 22:40:27 +08:00
|
|
|
|
echo 错误:OpenPose模型下载失败
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
2025-02-16 22:14:53 +08:00
|
|
|
|
|
2025-02-17 00:09:45 +08:00
|
|
|
|
REM 所有模型下载并验证完成
|
|
|
|
|
echo.
|
|
|
|
|
echo 所有模型文件已下载并验证成功!
|
|
|
|
|
pause
|
|
|
|
|
|
|
|
|
|
:RemoveTrailingComma
|
2025-02-17 00:17:01 +08:00
|
|
|
|
REM 此子程序移除传入字符串末尾多余的"", "(逗号和空格)
|
2025-02-17 00:09:45 +08:00
|
|
|
|
set "str=%~1"
|
|
|
|
|
:RemoveTrailingLoop
|
|
|
|
|
if "%str:~-2%"==", " (
|
|
|
|
|
set "str=%str:~0,-2%"
|
|
|
|
|
goto RemoveTrailingLoop
|
|
|
|
|
)
|
|
|
|
|
set "result=%str%"
|
|
|
|
|
goto :eof
|
|
|
|
|
|
2025-02-16 18:24:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-16 00:48:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-16 14:40:58 +08:00
|
|
|
|
|
2025-02-15 14:31:02 +08:00
|
|
|
|
|
2025-02-15 14:46:18 +08:00
|
|
|
|
|
2025-02-16 00:48:21 +08:00
|
|
|
|
|
2025-02-16 16:51:05 +08:00
|
|
|
|
|
2025-02-16 00:48:21 +08:00
|
|
|
|
|
2025-02-16 17:04:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-15 21:12:05 +08:00
|
|
|
|
|