我有一个文件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%
答案 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!