IF ELSE结构中Echo不能正常工作



我在IF/ELSE结构内移动线条时遇到了很多问题。下面的代码不打印echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5%文件。而不是将值打印到控制台,并删除最后一个字符。有什么问题吗?

@echo off
setlocal enabledelayedexpansion
SET ENABLED_X=1
SET FILE=test.txt
SET VALUE1=23,5
SET VALUE2=34,1
SET VALUE3=0,45
SET VALUE4=3,33
SET VALUE5=3,5
IF /I %ENABLED_X%==0 (
    echo %VALUE1%;%VALUE2%;%VALUE3%;%VALUE4%>>%FILE%
    echo NOT ENABLED
) ELSE (
    echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5%>>%FILE%
    echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5%  
    echo ENABLED
)

部分5>>test.txt将被解释为重定向。通常用作1>>file2>>file,分别用于重定向标准输出和错误输出。

使用

>>%FILE% echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5%

。在行首进行重定向永远不会让它干扰其他内容。

注意:没有引号,%FILE%是可以的。在文件名中使用空格可能会遇到麻烦。

只需在两个>>之前放置一个空格或(echo %VALUE…)>>%FILE%

最新更新