2016-11-14 60 views
0

我在移動IF/ELSE結構中的行時遇到了很多問題。下面的代碼不打印 echo %VALUE1%;%VALUE2:~0,2%;%VALUE3%;%VALUE4%;%VALUE5% 到文件。而不是打印到控制檯的值,最後一個字符被丟棄。問題是什麼?回聲在IF ELSE結構內部不能正常工作

@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 
) 
+0

密切相關:[cmd,write和txt讀取](http://stackoverflow.com/a/40288548) – aschipfl

回答

2

的部分5>>test.txt的將被解釋爲重定向之前只需將一個單一的空間。通常它分別用作1>>file2>>file來重定向標準輸出和錯誤輸出。

使用

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

代替。在行首開始做重定向決不會讓它干擾其他事情。

注意:不含引號,%FILE%即可。在文件名中使用空格時可能會遇到麻煩。

0

兩個你>>(echo %VALUE…)>>%FILE%