2015-03-02 3 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 и строку в переменном файл. Однако в конце я получаю Video = 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! File!' Вместо '@echo file' – JosefZ

+0

Спасибо! Оно работает! – user1799803

Смежные вопросы