我是一名批处理程序员,我刚刚加入这个网站询问一个问题......
我制作了这个程序,从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
帮助?
答案 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