bat - ECHO выключен в текстовых файлах - PullRequest
2 голосов
/ 19 сентября 2011
:obje7
set gn=%random%
if /i %gn% lss 1 goto obje%go%
if /i %gn% gtr 5 goto obje%go%
set goal%gn%="test"
echo hi > goal%go%.txt
echo hi > g2.txt
goto go

, который устанавливает тест в target% random_number%, верно?

(
echo %goal1%
echo %goal2%
echo %goal3%
echo %goal4%
echo %goal5%
) >> mcbingo.txt

и результат, который я получаю:

 ECHO is off.
 test
 ECHO is off.
 test
 test

и все: objeX одинаковыкод, но изменил X и g2.txt, например, g1.txt.

Кто-нибудь есть идеи, что случилось?

1 Ответ

7 голосов
/ 20 сентября 2011

Некоторые из ваших goal переменных остаются неинициализированными.Когда вы выводите их, неинициализированные переменные оцениваются как пустые строки, а соответствующие команды echo просто выглядят так:

echo

Без параметров echo отображает состояние эхо-командных командconsole (когда ON, они отображаются, когда OFF, что более типично для пакетов, а не для них).

Чтобы избежать такого поведения и вместо этого отображать пустые строки, добавьте разделители между echo s и %goal…<i>%</i> s.В этой позиции можно использовать несколько разделителей, но, как следует из , этот ответ , ( представляется наиболее подходящим:

(
echo(%goal1%
echo(%goal2%
echo(%goal3%
echo(%goal4%
echo(%goal5%
) >> mcbingo.txt
...