я написал ниже сценарий:Переменная проблема инициализации в пакетном сценарии
@echo off
setlocal EnableDelayedExpansion
REM Collect source filenames from C:\Files and load into C:\doc.txt
dir C:\sources\Sourcefiles /b /a-d > C:\sourcefilenames.txt
REM fetch count of source files and store into variable count
For /F %%I in ('call C:\count.bat ') Do Set count=%%I
REM loop "count" number of times and echo temp.txt value
FOR /L %%A IN (1,1,%count%) DO (
REM call line.bat to fetch line 1,line 2 and so on of sourcefilenames.txt for each loop
call line.bat %%A>C:\temp.txt
set /p var=<C:\temp.txt
echo var:%var% ----------> returns previous run value
type C:\temp.txt ----------. returns current value of temp.txt
)
В основном то, что я пытаюсь сделать из приведенного выше сценария: Я создаю переменную (Var) от содержания температуры .txt (данные в temp.txt будут меняться для каждого цикла цикла), которые будут использоваться в нескольких циклах.
Но проблема в том, что я столкнулся: Echo var is:% var% command возвращает мне предыдущее значение запуска не temp.txt current content.whereas команда "type C: \ temp.txt" возвращает мне temp.txt current содержание. (Примечание: если я вызвал/создал переменную «var» из какого-то другого скрипта, он возвращает мне, что предыдущее значение еще возвращает Null)
Ваша помощь/руководство по вышеуказанной проблеме действительно оценено. Thanks
у вас есть [замедленное расширение] (http://stackoverflow.com/a/30284028/2152082) проблема. Используйте 'echo var:! Var!'. – Stephan