批处理for中的变量自加
@echooffsetlocalenabledelayedexpansionset/ana=1for%%min(*.txt)do(set/ana+=1@echo%na%)...
@echo off
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo %na%)
@echo %na%
set na=
为什么for中na的值不变,for结束后却变了。怎样在for中使na变呢? 展开
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo %na%)
@echo %na%
set na=
为什么for中na的值不变,for结束后却变了。怎样在for中使na变呢? 展开
2个回答
展开全部
将%na%改为!na!就可以使na的值在for中每次循环的值改变,详情请查询for变量延迟
@echo off
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo !na!)
@echo %na%
set na=
@echo off
setlocal enabledelayedexpansion
set /a na=1
for %%m in (*.txt)do (
set /a na+=1
@echo !na!)
@echo %na%
set na=
更多追问追答
追问
能说一下%和!的区别吗?
追答
如果你希望变量在for中每次循环值都更新,就需要开启变量延迟
语句为setlocal enabledelayedexpansion
并将变量使用!的方式进行使用
!a!和%a%都表示a变量,只不过在for中!a!每次循环的值都是a当前的值,而%a%不能在循环中更新,只有在结束后才能显示出最后的结果,具体原因请查询【for变量延迟】
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询