2015-08-29 47 views
0

我有一個問題,這個代碼批量計算,以文字

:sum2 
set /a sum=%Result% - 5000 
echo %section%> %file% 
echo %sum%>> %file% 
goto finished 

如果%結果%的5000,那麼它顯然會從中減去5000,並保存爲文本文件。但它給我的

Echo is OFF 

輸出,但如果結果%%的10000它將從它減去5000,並輸出到文本文件保存爲5000,精...

現在的問題是,有沒有一種方法可以使輸出在文本文件中爲0時從5000減去5000?

+1

將'>>%file%'移到行首。 – SomethingDark

+0

閱讀[cmd.exe重定向運算符的順序和位置](http://stackoverflow.com/a/25562437) – JosefZ

回答

0

只是澄清@somethingdark在評論中的答案:
它假設%section%有一個值。

:sum2 
set /a sum=%Result% - 5000 
> %file% echo %section% 
>> %file% echo %sum% 
goto finished 
0

我曾嘗試以下: 假設%結果%等於5000 和%部分%的[MySection]

:sum2 
set /a sum=%Result% - 5000 
if %sum% equ 0 (echo %section%> %file% &echo 0>> %file%) else (echo %section> %file &echo %sum%>> %file%) 
goto finished 

如果%總和%是不等於0它會在它下面寫下%section%和%sum%的值。如果%sum%等於0,它應該寫入%section%,然後在其下寫0。但我的問題,不過,是輸出仍然會

ECHO is off 

當%和%給予0

雖然價值,但不包括寫入的%和%的值轉換成文本文件,就讓它回聲,像

:sum2 
set /a sum=%Result% - 5000 
echo %sum% 
goto finished 

它會給我的

0 

輸出我只是不明白我t

+0

你有沒有在他的評論中閱讀JosefZ的鏈接?那裏有好的解釋。 (另外:'0'是標準輸入 - 顯然是空的,因此''echo is off''') – Stephan

+0

如果那個文本文件中的第二行是空的,那麼我有辦法做一個IF語句嗎? –

+0

我的文本文件包含[MySection],並在其下面有一個數字。因此,如果%sum%值爲0(或在此情況下ECHO關閉),則會將第二行留空。是否有一個IF語句來檢查該行是否爲空,然後執行do(MyCommand)ELSE(MyCommand)? –