如何在Batch批处理中实现1-50计数设为变量并动态调整序号
Batch脚本动态序号变量实现方案
方案1:自动计数赋值(推荐,插入无需手动改编号)
直接用计数器自动生成序号,插入新程序时只要在对应位置加一行赋值代码即可,后续序号会自动顺延,不需要手动修改任何原有编号:
@echo off setlocal enableDelayedExpansion :INSTALLER :: 初始化序号计数器 set "c=0" :: 按顺序添加程序,每加一个计数器自动+1 set /a c+=1 & set "n!c!=7_Zip" set /a c+=1 & set "n!c!=Adobe_Products" set /a c+=1 & set "n!c!=Allavsoft" set /a c+=1 & set "n!c!=Astute_Graphics" set /a c+=1 & set "n!c!=AutoHotkey" set /a c+=1 & set "n!c!=Backup_and_Sync_from_Google" set /a c+=1 & set "n!c!=BlueStacks_5_Beta" set /a c+=1 & set "n!c!=CC_Cleaner" :: 此处插入Notepad++,不需要修改后续任何代码,序号自动顺延 set /a c+=1 & set "n!c!=Notepad++" set /a c+=1 & set "n!c!=Core_Temp" set /a c+=1 & set "n!c!=CPUID_CPU-Z" :: 变量c最终值为总程序数量 echo 总共有 %c% 个程序
调用指定序号变量的方式和你要求的完全一致,直接用!n%c%!即可,遍历所有程序的示例:
for /l %%i in (1,1,%c%) do ( echo 第 %%i 个程序:!n%%i! :: 此处添加你自己的处理逻辑 )
方案2:手动编号场景下的遍历方法
如果你不想修改原有手动定义n1/n2的代码,可以用for循环直接遍历指定范围的序号:
:: 遍历1到50的序号,仅处理存在的变量 for /l %%i in (1,1,50) do ( if defined n%%i ( set "c=%%i" echo 第!c!个程序:!n%%i! :: 此处添加你自己的处理逻辑 ) )
内容的提问来源于stack exchange,提问作者Eliazar
相关产品推荐
相关产品推荐

