@echo off
color a
:ini
set /p 1= %random%
set /p 2= %random%
set /p 3= %random%
set /p 4= %random%
set /p 5= %random%
set /p 6= %random%
set /p 7= %random%
set /p 8= %random%
set /p 9= %random%
set /p 10= %random%
设置随机数
(
echo %1%
echo %2%
echo %3%
echo %4%
echo %5%
echo %6%
echo %7%
echo %8%
echo %9%
echo %10%
)>file.txt
尝试将它们回显到文件中 我的并发症是回声已关闭。 我需要它关闭。
答案 0 :(得分:1)
不应将变量命名为数字。 Per dbenham的评论如下:
%1%被解释为碰巧的%1(第一个脚本参数) 在这种情况下是未定义的,后面是一个单独的% 消耗。通常,您不应该使用名称定义变量 以数字开头。但是如果使用,你可以访问这些变量 延迟扩张 - %1%不起作用,但是!1!确实有效。
因此,在您的情况下,解析器遇到无效变量(例如%1%
),因此它只处理ECHO
命令,如果ECHO打开或关闭,它只会输出。
除了您尝试使用随机数作为提示文本提示输入10个值之外,您的脚本似乎有点失效。
如果您只需输出10个随机数,则可以使用FOR
循环“优雅地”执行此操作:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET FileName=file.txt
SET NumberOfValues=10
REM Remove existing file if it exists.
IF EXIST "%FileName%" DEL "%FileName%"
FOR /L %%A IN (1,1,%NumberOfValues%) DO ECHO !RANDOM!>>file.txt
ENDLOCAL
或者,一个更成功的方法是这个单行程,您可以在Windows命令提示符中直接运行(不需要批处理文件):
CMD /V:ON /C FOR /L %A IN (1,1,10) DO @ECHO !RANDOM!>file.txt