1

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

我制作了这个程序,它写入从 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

帮助?

4

1 回答 1

1

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

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

在第一个声明时,%t%设置为空,所以就好像你说:

echo >>wait.rsm

这就是为什么你会得到ECHO is off,你用“赤裸”的 echo 命令看到的。

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

SET /A t=%RANDOM% * 10 / 32768 + 1
echo %t% >>wait.rsm
于 2013-07-15T11:43:14.520 回答