我在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>>file
或2>>file
,分别用于重定向标准输出和错误输出。
>>%FILE% echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5%
。在行首进行重定向永远不会让它干扰其他内容。
注意:没有引号,%FILE%
是可以的。在文件名中使用空格可能会遇到麻烦。
只需在两个>>
之前放置一个空格或(echo %VALUE…)>>%FILE%