Echo在IF ELSE结构中无法正常工作

时间:2016-11-14 15:59:02

标签: file batch-file if-statement 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
)

2 个答案:

答案 0 :(得分:2)

部分1>>file将被解释为重定向。通常,它分别用作2>>file>>%FILE% echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5% 来重定向标准输出和错误输出。

使用

%FILE%

代替。在行的开头进行重定向永远不会让它干扰别的东西。

注意:如果没有引号,svn update --depth=files 就可以了。在文件名中使用空格时可能会遇到麻烦。

答案 1 :(得分:0)

只需在>> (echo %VALUE…)>>%FILE%之前放置一个空格 要么 j0