我的目标是使用批处理文件创建一个看起来像02xxxxxxxxxx的随机十六进制数字。 但是我通过在不同批处理文件之间传递单个数字来解决问题。
top.bat
for /f %%i in ('ran') do set b0=%%i
echo %b0%
ran.bat
@echo off
SET /a A=%RANDOM%*16/32768
for /f %%i in ('tohex.bat A') do set a0=%%i
echo %a0%
tohex.bat
@echo off & setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set LOOKUP=0123456789abcdef &set HEXSTR=&set PREFIX=
if "%1"=="" echo 0&goto :EOF
set /a A=%*
if !A! LSS 0 set /a A=0xfffffff + !A! + 1 & set PREFIX=f
:loop
set /a B=!A! %% 16 & set /a A=!A! / 16
set HEXSTR=!LOOKUP:~%B%,1!%HEXSTR%
if %A% GTR 0 goto :loop
echo %PREFIX%%HEXSTR%