2013-07-15 39 views
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 

帮助的 “作家”?

回答

1

你的作家是呼应%T%它的设置是:

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

在第一次发言的时间,因为如果你说%t%设置为Nothing所以它是:

echo >>wait.rsm 

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

基本上,你需要尝试呼应它,以便交换围绕这两个语句之前设置%t

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

'>> wait.rsm回声%T%'如果你使用这个那么它将不包括尾随空间。 – foxidrive

+0

我明白了。多谢你们!这确实有助于:D –