You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本优化请求:按环境过滤服务器列表并调整输出格式

优化后的Batch脚本实现
@echo off
setlocal enabledelayedexpansion

:: 处理serial变量:默认赋值100,调用外部脚本获取实际值
set "serial=100"
call "get_server_details.cmd"  :: 假设该外部脚本会更新serial变量的实际值

:: 校验并解析环境参数
set "target_env="
if /i "%~1" equ "D" set "target_env=DEV"
if /i "%~1" equ "U" set "target_env=UAT"
if /i "%~1" equ "P" set "target_env=PROD"
if /i "%~1" equ "DEV" set "target_env=DEV"
if /i "%~1" equ "UAT" set "target_env=UAT"
if /i "%~1" equ "PROD" set "target_env=PROD"

:: 参数不合法时提示并退出
if not defined target_env (
    echo 错误:请传入合法环境参数:D(DEV)/U(UAT)/P(PROD)
    exit /b 1
)

:: 定义各环境服务器列表(可根据实际场景替换为从外部文件/数据库读取)
set "DEV_servers=dev-srv-01 dev-srv-02 dev-srv-03"
set "UAT_servers=uat-srv-01 uat-srv-02"
set "PROD_servers=prod-srv-01 prod-srv-02 prod-srv-03 prod-srv-04"

:: 输出对应环境的服务器,每行显示一个
echo 当前Serial值:%serial%
echo %target_env%环境服务器列表:
for %%s in (!%target_env%_servers!) do (
    echo - %%s
)

endlocal

核心优化说明

  • 环境过滤逻辑:仅根据传入的参数(支持缩写/完整名称)加载对应环境的服务器数据,完全隐藏其他环境内容
  • 格式化输出:通过for循环遍历服务器列表,实现每行显示一个服务器名称
  • 参数校验:对非法参数直接给出错误提示并退出,避免无意义执行
  • Serial变量兼容:保留默认值100的同时,通过call命令调用外部脚本获取实际值(需确保外部脚本正确设置serial变量)

扩展适配(若服务器列表来自外部文件)

如果服务器列表不是硬编码,而是存储在每行一个服务器的文本文件中,可替换服务器定义与输出部分为以下逻辑:

:: 绑定对应环境的服务器文件
if "%target_env%" equ "DEV" set "server_file=dev_servers.txt"
if "%target_env%" equ "UAT" set "server_file=uat_servers.txt"
if "%target_env%" equ "PROD" set "server_file=prod_servers.txt"

echo %target_env%环境服务器列表:
for /f "delims=" %%s in (%server_file%) do (
    echo - %%s
)

内容的提问来源于stack exchange,提问作者Learning_something_new

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:31:15