[转发]Windows 批处理(BAT文件)循环中变量的值不变问题
该问题和Windows批处理脚本的处理模式有关,我的理解是:批处理是读一行解释、执行一行,解释完后(变量的替换等),就不再解释了,就是说即便外部程序在逻辑上又改变了变量的值,但解释器已经不再理会了。
解决方法就是使用延迟变量解释,告诉解释器这是一个变量,后面的值还会改变。
使用延迟变量条件:
(1)打开延迟扩展设置: setlocal enabledelayedexpansion
(2)使用!k!(2个感叹号夹1个变量)来读取变量,不开启延迟扩展时,读取方式是 %k%(2个百分号夹1个变量)
原文链接:https://blog.csdn.net/hongweigg/article/details/107353164
https://www.jb51.net/article/29323.htm 批处理中setlocal enabledelayedexpansion的作用详细整理

浙公网安备 33010602011771号