批处理文件将错误的数据写入文件

时间:2013-07-15 11:37:27

标签: batch-file

我是一名批处理程序员,我刚刚加入这个网站询问一个问题......

我制作了这个程序,从1到10写入随机数,并将它们编码/写入文件......问题是,另一个批处理文件必须读取数字并检查它是否低于5.

生成随机数的批处理文件不会在文件中输入随机数; 相反,文件说

  

ECHO关闭

这会混淆其他批处理文件,因此会崩溃。

这是两个批处理文件的代码;

数字的“作家”

    @echo off >nul
    title Batch Arithmetic Communicator
    :check
    timeout /t 1 >nul /nobreak
    echo %t% >>wait.rsm
    SET /A t=%RANDOM% * 10 / 32768 + 1
    goto cont

    :cont
    timeout /t 1 >nul
    if exist pack.rsm goto cont2
    if NOT exist pack.rsm goto cont

    :cont2
    set /p data=<pack.rsm
    del pack.rsm
    if %data% LSS 5 goto move
    if %data% GTR 5 goto check

The receiver of the numbers


@echo off
:a
timeout /t 1 >nul
if exist wait.rsm goto b
if NOT exist wait.rsm goto a

:b
set /p d=<wait.rsm
if %d% GTR 5 goto a
if %d% LSS 5 goto w

:w
echo 3>>pack.rsm
goto a

帮助?

1 个答案:

答案 0 :(得分:1)

您的作者在设置之前回显%t%

echo %t% >>wait.rsm
SET /A t=%RANDOM% * 10 / 32768 + 1

在第一次发言时,%t%被设置为空,所以就好像你说的那样:

echo >>wait.rsm

这就是为什么你得到ECHO is off,你看到的是“裸”的回声命令。

基本上,你需要在尝试回应之前设置%t,以便交换这两个语句:

SET /A t=%RANDOM% * 10 / 32768 + 1
echo %t% >>wait.rsm