我是新来的批处理。我想把这个文件回传到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 "改成其他变量,但我还是有同样的问题。提前感谢您的帮助。
你的问题可能是由于你的结果也可以被混淆为重定向句柄而引起的。即(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%
你懂的 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%
这样既能保证输出文件中的变量周围没有空格,也能保证实际的... 写作 的值到所述文件。