本地更新代码--windows批处理脚本

本文详细介绍了如何使用Windows批处理脚本来自动化本地代码的更新过程,提高开发效率。通过实例解析批处理命令的用法,帮助开发者轻松管理代码仓库。
摘要由CSDN通过智能技术生成
@echo off
setlocal enabledelayedexpansion

set "config_file=config.cfg"
set "default_path="
set "project_path="
set "folders="
set "local_folder="
set "remote_url="
set "comm_link="
set "base_link="
set "smpui_link="
set "create_link_folder="

if not "%~1" == "" (
    set "path=%~1"
    if exist "!path!" (
        if "%~a1"=="-a" (
            set "config_file=!path!\config.cfg"
        ) else (
            set "config_file=!path!"
        )
    )
)


:: 读取配置文件
if not exist "!config_file!" (
    :create_new_config
    echo The configuration file does not exist.
    set /p "create_config=Enter [c] to create a new configuration file, or enter [p] to provide an existing configuration file path: "
    
    if /i "!create_config!" == "c" (
        goto :input_dev_path
    ) else if /i "!create_config!" == "p" (
        set /p "config_file_path=Please enter the complete configuration file path: "
        REM 检查路径是否存在
        if not exist "!config_file_path!" (
            echo Invalid file path.
            goto :create_new_config
        )
        REM 检查路径是否为文件路径
        for %%i in ("!config_file_path!") do (
            set "file_attr=%%~ai"
            if "!file_attr:~0,1!"=="d" (
                echo Invalid directory path, please enter a valid file path.
                goto :create_new_config
            ) else (
                set "config_file=!config_file_path!"
                goto :read_file
            )
        )
    ) else (
        echo Invalid input, please re-enter.
        goto :create_new_config
    )
    :: 初次进入 设置工作空间目录 以及所需操作的目录
    :input_dev_path
    set /p "dev_path=Enter dev workspace path: "
    if not exist "!dev_path!" (
        echo Invalid dev workspace path. Please try again.
        goto input_dev_path
    )
    set "default_path=!dev_path!"

    :input_project_path
    set /p "project_path=Enter project workspace path: "
    if not exist "!project_path!" (
        echo Invalid project workspace path. Please try again.
        goto input_project_path
    )
    set "project_path=!project_path!"


    :input_folders
    set /p "new_folders=Enter basic folders, separated by spaces: "
    if not defined new_folders (
        echo Folders value is missing in configuration file.
        goto :input_folders
    ) else if "!folders: =!"=="" (
         echo Folders value is missing in configuration file.
        goto :input_folders
    )
    set "folders=!new_folders!"

    :input_local_folders
    set /p "new_local_folders=Enter local folder, that can help you compile and package plugin project: "
    if not defined new_local_folders (
        echo local folder value is missing in configuration file.
        goto :input_local_folders
    ) else if "!new_local_folders: =!"=="" (
        cho local folder value is missing in configuration file.
        goto :input_local_folders
    )
    set "local_folder=!new_local_folders!"


    :input_remote_url
    set /p "new_remote_url=Enter project remote url:"
    if not defined new_remote_url (
        echo Remote URL value is missing in configuration file.
        goto :input_remote_url
    ) else if "!new_remote_url: =!"=="" (
        echo Remote URL value is missing in configuration file.
        goto :input_remote_url
    )

    set "remote_url=!new_remote_url!"

    goto :re_input_folders
    

) else (
    goto :read_file
)


:read_file
:: 读取配置文件的变量值
for /f "usebackq tokens=1,2 delims==" %%a in ("!config_file!") do set "%%a=%%b"

:: 检查 default_path 的值是否有效
if not exist "!default_path!" (
    echo Invalid dev workspace path in configuration file.
    :re_input_dev_path
    set /p "new_dev_path=Enter new dev workspace path: "
    if not exist "!new_dev_path!" (
        echo Invalid dev workspace path. Please try again.
        goto :re_input_dev_path
    )
    set "default_path=!new_dev_path!"
)

:: 检查 project_path 的值是否有效
if not exist "!project_path!" (
    echo Invalid project workspace path in configuration file.
    :re_input_project_path
    set /p "new_project_path=Enter new project workspace path: "
    if not exist "!new_project_path!" (
        echo Invalid project workspace path. Please try again.
        goto :re_input_project_path
    )
    set "project_path=!new_project_path!"
)

:: 检查 folders 的值是否有效
:re_input_folders
if not defined folders (
    echo Folders value is missing in configuration file.
    set /p "new_folders=Enter new folders, separated by spaces: "
    set "folders=!new_folders!"
    goto :re_input_folders
) else if "!folders: =!"=="" (
    echo Folders value is missing in configuration file.
    set /p "new_folders=Enter new folders, separated by spaces: "
    set "folders=!new_folders!"
    goto :re_input_folders
)

:: 检查 local_folder 的值是否有效
:re_input_local_folder
if not defined local_folder (
    echo Folders value is missing in configuration file.
    set /p "new_local_folders=Enter new local_folder, that can help you compile and package plugin project: "
    set "local_folder=!new_local_folders!"
    goto :re_input_local_folder
) else if "!local_folder: =!"=="" (
    echo Folders value is missing in configuration file.
    set /p "new_local_folders=Enter new local_folder, that can help you compile and package plugin project: "
    set "local_folder=!new_local_folders!"
    goto :re_input_local_folder
)

::检查remote_url是否有值
:re_input_remote_url
if not defined remote_url (
    echo Remote URL value is missing in configuration file.
    set /p "new_remote_url=Enter project remote url: "
    set "remote_url=!new_remote_url!"
    goto :re_input_remote_url
) else if "!remote_url: =!"=="" (
    echo Remote URL value is missing in configuration file.
    set /p "new_remote_url=Enter project remote url: "
    set "remote_url=!new_remote_url!"
    goto :re_input_remote_url
)

if not defined comm_link (
    set ""
) else if "!base_link: =!"=="" (
    set ""
)

if not defined base_link (
    set ""
) else if "!base_link: =!"=="" (
    set ""
)

if not defined smpui_link (
    set ""
) else if "!smpui_link: =!"=="" (
    set ""
)

if not defined create_link_folder (
    set "create_link_folder=smp5-local"
) else if "!create_link_folder: =!"=="" (
    set "create_link_folder=smp5-local"
)

if not defined web_inf (
    set ""
) else if "!web_inf: =!"=="" (
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值