如何解决echo是关。批量,bat)[重复]

问题描述 投票:0回答:1

我是新来的批处理。我想把这个文件回传到txt,但我得到的是: ECHO is off. in cmd.

SET /a _rand=(%RANDOM%*5/32768)+1
Set /a zmienna=%zmienna%-%_rand%
set kurczaki=%zmienna%
echo %kurczaki%> bin\DB\smth.txt

我试着把 "zmienna "改成其他变量,但我还是有同样的问题。提前感谢您的帮助。

batch-file echo
1个回答
0
投票

你的问题可能是由于你的结果也可以被混淆为重定向句柄而引起的。即(1>, 2> 等)。). 这可以通过你的方式轻松解决 echo 它。

你也可以把你的四行简化为只有两行。

Set /A kurczaki=zmienna - ((%RANDOM% %% 5) + 1)
(Echo %kurczaki%) > bin\DB\smth.txt

或者

Set /A kurczaki=zmienna - ((%RANDOM% %% 5) + 1)
> bin\DB\smth.txt Echo %kurczaki% 

0
投票

你懂的 ECHO is off/on 信息,如果你只是运行 echo 没有操作数。这意味着,由于某些原因,你的 kurczaki 变量没有被设置成任何东西。因此,你应该在设置完每个变量后,对其进行呼应,看看问题出在哪里。

SET /a _rand=(%RANDOM%*5/32768)+1
echo .%_rand%.
Set /a zmienna=%zmienna%-%_rand%
echo .%zmienna%.
set kurczaki=%zmienna%
echo .%kurczaki%.
echo %kurczaki%> bin\DB\smth.txt

当我在命令行中这样做的时候,有一个区别,当... > 重定向与你输出的东西硬碰硬,当那个东西可以作为一个文件句柄。

C:\Pax> set xx=7
C:\Pax> echo %xx%>zz.txt
ECHO is on.
C:\Pax> type zz.txt
<no output>
C:\Pax> echo %xx% >zz.txt
C:\Pax> type zz.txt
7<space>

所以我认为你的解决方案就是不要这样做。在这种情况下,发生的情况是 echo %xx%>zz.txt 正在转换 恰恰 成。

echo 7>zz.txt

这就是 发出 7 的文件。而不是将文件句柄 7 到该文件,然后,因为你的 echo 只写到文件句柄 1 (标准输出),文件中不会出现任何内容。

此外,由于 %xx% 已被吸收为重定向,不再有任何参数需要呼应,因此你得到的是 ECHO is off 信息。可以进一步证明与。

C:\Pax> set xx=1 7
C:\Pax> echo %xx%
1 7
C:\Pax> echo %xx%>zz.txt
1

7 被吸收为重定向,只留下了 1.

但要注意的是,如果你不按一定的方式来做,空格经常会进入输出。为此,我会将这一行改为。

echo>bin\DB\smth.txt %kurczaki%

这样既能保证输出文件中的变量周围没有空格,也能保证实际的... 写作 的值到所述文件。

© www.soinside.com 2019 - 2024. All rights reserved.