Random 将随机字符串添加到注册表的批处理文件

Random 将随机字符串添加到注册表的批处理文件,random,batch-file,registry,Random,Batch File,Registry,我正在尝试创建一个批处理文件,该文件将创建一个随机的四位数字(例如8472),然后用这个数字编辑一个注册表字符串 我就在这里,但它不起作用。正如您所看到的,注册表中已经有一个字符串,我需要这个脚本在每次运行时更改最后四位数字。我哪里做错了?此外,“暂停”也不能使我的cmd窗口以打开的速度关闭 echo ----------------------------------- echo --------------Testing-------------- echo ----------------

我正在尝试创建一个批处理文件,该文件将创建一个随机的四位数字(例如8472),然后用这个数字编辑一个注册表字符串

我就在这里,但它不起作用。正如您所看到的,注册表中已经有一个字符串,我需要这个脚本在每次运行时更改最后四位数字。我哪里做错了?此外,“暂停”也不能使我的cmd窗口以打开的速度关闭

echo -----------------------------------
echo --------------Testing--------------
echo -----------------------------------

:beg
set rnd %random%
if %rnd% GTR 9999 goto beg
if %rnd% LSS 1111 goto beg

REGEDIT4
; @ECHO OFF
; CLS
; REGEDIT.EXE /S "%~f0"
; EXIT

[HKEY_LOCAL_MACHINE\Software\Test]
"Test"="{12345678-12A1-123B-A12C-123A123B%rnd%}"

我认为regedit不知道如何从运行它的批处理文件中读取输入数据。您可能需要创建一个临时文件,类似以下内容(未测试):

start/wait
将导致批处理文件在删除
tmp.reg
文件之前等待,直到
regedit4
完成

另外,如果您的窗口马上关闭,那么打开一个“命令提示符”窗口并从那里运行批处理文件(我想您当前正在单击批处理文件的快捷方式)


我们应该做到这一点。请注意,成倍的
%%
mod运算符用于批处理文件;如果在命令提示符下执行此操作,请仅使用一个
%

添加项。我们可以使用语法
%RANDOM:~-N%
从字符串右侧提取字符,其中N是请求的位数。要创建4位随机数,请使用:

> echo %RANDOM:~-4%
但由于这仅在数字大于999时有效:

> set var=0%RANDOM%
> echo %var:~-4%
因此,另一种方法是:

> set /A var=%RANDOM% + 1000
> echo %var:~-4%
由于
RANDOM
是一个从0到32767的随机变量,让我们检查溢出:

> set /A var=32767 + 1000
33767

希望这有帮助。

这就是我正在做的,我会去测试它,直到将该字符串放入正在工作的注册表,但如果我将随机数生成器放在上面,它仍然不会工作。您是否需要
=
介于
rnd
%random%
之间的
=/code>?还有.reg文件不会导入注册表OK。恐怕我手边没有一台Windows机器来测试这个,我只是从内存开始。我真的想知道你为什么要这么做?只是出于好奇。
> set /A var=%RANDOM% + 1000
> echo %var:~-4%
> set /A var=32767 + 1000
33767