@echo off ::(x.1)get csproj for /f "delims=" %%a in ('findstr /M /s /i /r " " "..\..\..\*.csproj"') do set "csproj=%%~a" ::echo %csproj% ::(x.2)get version for /f "tokens=3 delims=><" %%a in ('type %csproj%^|findstr ".*Version"') do set version=%%a :: set version=2.1.3 :: echo %version% ::(x.3)get v1 v2 v3 for /f "tokens=1 delims=-" %%i in ("%version%") do set numVersion=%%i :: v1 v2 v3 for /f "tokens=1 delims=." %%i in ("%numVersion%") do set v1=%%i for /f "tokens=2 delims=." %%i in ("%numVersion%") do set v2=%%i for /f "tokens=3 delims=." %%i in ("%numVersion%") do set v3=%%i ::(x.4)newVersion :: set /a v3=1+%v3% set newVersion=%v1%.%v2%.%v3% :: echo %newVersion% echo [%version%]-^>[%newVersion%] ::(x.5)调用工具 替换csproj文件中的版本号 VsTool.exe replace -r --path "..\..\.." --file "*.csproj" --old "%version%" --new "%newVersion%" VsTool.exe replace -r --path "..\..\.." --file "packages.config" --old "%version%" --new "%newVersion%" ::(x.6)调用工具 替换docker镜像命令中的版本号 VsTool.exe replace -r --path "..\..\..\Publish\ReleaseFile\docker-image" --file "*.md" --old "%version%" --new "%newVersion%" echo. echo. echo. echo 已经成功修改版本号 [%version%]-^>[%newVersion%] pause