如何编写Bat脚本仅下载服务器上带版本号文件的最新版本?
批量下载指定批次最新版本CSV文件的Bat脚本改进方案
以下是修改后的Bat脚本,可自动识别每个批次的最新版本文件并仅下载该版本:
@echo off setlocal enabledelayedexpansion :: 定义服务器文件路径和本地目标路径,可根据实际修改 set "source_path=\\server\folder\" set "target_path=C:\folder\" :: 遍历所有目标文件,记录每个批次的最新版本号 for /f "tokens=2,3 delims=_" %%a in ('dir /b "%source_path%IAV*__PANEL.CSV"') do ( set "batch=%%a" set "version=%%b" :: 若当前批次无记录,或当前版本更大则更新 if not defined batch_max_!batch! ( set "batch_max_!batch!=!version!" ) else ( if !version! gtr !batch_max_!batch! ( set "batch_max_!batch!=!version!" ) ) ) :: 根据记录的最新版本,执行文件复制 for /f "tokens=2 delims=_=" %%a in ('set batch_max_') do ( set "batch=%%a" set "version=!batch_max_%%a!" copy "%source_path%IAV*_!batch!_!version!__PANEL.CSV" "%target_path%" ) echo 最新版本文件下载完成 pause
关键说明:
- 文件名解析:通过
for /f分割文件名,提取批次(第二个下划线后内容)和版本号(第三个下划线后内容) - 版本对比:用
batch_max_<批次号>格式的变量存储每个批次的最大版本,遍历文件时自动更新 - 精准复制:最后根据存储的最新版本信息,拼接文件名完成定向下载
注意事项:
- 需确保文件名严格遵循
IAVxxxx_<批次>_<版本>__PANEL.CSV格式,版本号为数字(支持1-10及多位数版本) - 若路径包含空格,需用双引号包裹路径
内容的提问来源于stack exchange,提问作者suraround
相关产品推荐
相关产品推荐

