@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: =!"=="" (
本地更新代码--windows批处理脚本
最新推荐文章于 2024-09-09 13:32:45 发布
本文详细介绍了如何使用Windows批处理脚本来自动化本地代码的更新过程,提高开发效率。通过实例解析批处理命令的用法,帮助开发者轻松管理代码仓库。
摘要由CSDN通过智能技术生成