我是Windows批处理编程的新手,我在变量赋值中发现了问题。这是我的代码:
@echo off
setlocal enabledelayedexpansion
set Video=1
set FILEMEDIA=outputMedia.txt
for /f %%a in (%FILEMEDIA%) do (
set /a Video=%Video%+1
@echo Video
set file=%%a
@echo file
)
如果FILEMEDIA有两行,我想获取Video = 2和文件变量行。但是,最后我获得了Video = 1,当我尝试打印文件时出错(回显已关闭)。
答案 0 :(得分:1)
与How do I increment a DOS variable in a FOR /F loop?
有些重复应延迟展开的变量以!VARIABLE!
而不是%VARIABLE%
引用。
@echo off
setlocal enabledelayedexpansion
set Video=1
set FILEMEDIA=outputMedia.txt
for /f %%a in (%FILEMEDIA%) do (
set /a Video+=1
@echo !Video!
set file=%%a
@echo file
)
endlocal