The damn “for” in batch file!
本来想在单个批处理文件里面实现类似下面的操作:
@echo off SET num=0 FOR /D %%i IN (*) DO ( SET /a num=%num%+1 echo %num%.%%i ) echo %num% pause>nul
结果发现这个该死FOR里面居然不能改变%num%的值,查了下 FOR /? 说是要用CMD /v启动命令行,然后把%num%改成!num!,我本来的目的是直接双击这一个批处理就完成操作的,看来不能用批处理实现了,去除这个部分,结果就有些不完美了,转向研究VBS中,看看VBS脚本能不能比较完美地实现我想要完成的功能,没找到好点的脚本对象手册,MSDN网上查又太慢,比较郁闷的
Update(2010-06-01): 原来通过设置延迟环境变量扩展,把%num%改为!num!后可实现:
@echo off & setlocal enabledelayedexpansion SET num=0 FOR /D %%i IN (*) DO ( SET /a num=!num!+1 echo !num!.%%i ) echo %num% pause>nul
参见:
近期评论