为什么没有设置变量

时间:2015-11-04 21:24:25

标签: batch-file

我有一个文件report.txt,其逗号分隔值如(1,2,3,4)。我正在检查文件是否为空白,然后为文件中的值分配4个变量。但是没有设置变量。任何帮助为什么会发生这种情况?

setlocal enabledelayedexpansion

    for /f %%i in ("Report.txt") do set size=%%~zi 
    if %size% gtr 0 (

    for /F "tokens=1-4 delims=," %%A in ("Report.txt") do (
        set "var1=%%a"
        set "var2=%%b"
        set "var3=%%c"
        set "var4=%%d"

    )
    set var
    )
    echo %var1%

2 个答案:

答案 0 :(得分:0)

您已启用延迟扩展,但您尚未使用它。要使用延迟展开,您需要使用!variable!代替%variable%。此外,for循环中指定的变量区分大小写,因此您需要将var1设置为%%A或使用%%a作为循环变量。

setlocal enabledelayedexpansion

for /f %%i in ("Report.txt") do set size=%%~zi 
if %size% gtr 0 (

    for /F "tokens=1-4 delims=," %%a in (Report.txt) do (
        set "var1=%%a"
        set "var2=%%b"
        set "var3=%%c"
        set "var4=%%d"
    )
    set var
)
echo !var1!

答案 1 :(得分:0)

setlocal enabledelayedexpansion

for /f %%i in ("Report.txt") do set size=%%~zi 
if %size% gtr 0 (

我更改了下面的代码并开始工作。谢谢你们的时间。请注意。

for /F "tokens=1-4 delims=," %%A in (%cd%\Report.txt) do (
    set "var1=%%A"
    set "var2=%%B"
    set "var3=%%C"
    set "var4=%%D"    

)
set var
)
echo !var1!