2015-03-02 62 views
0

我是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有两条线,我想获得视频= 2,在文件中变量的行。但是,最后我获得视频= 1,并尝试打印文件时发生错误(回显关闭)。

回答

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 
+0

也许'@echo!文件!',而不是'@echo file' – JosefZ 2015-03-02 09:21:12

+0

谢谢!有用! – user1799803 2015-03-02 09:35:40