找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28571|回复: 8

[数值计算] 怎么用批处理生成随机不重复的数字1~10

[复制链接]
发表于 2015-3-4 21:54:10 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-18 17:03 编辑

例如:
5
2
3
1
4
6
9
8
10
7
发表于 2015-3-4 22:20:45 | 显示全部楼层
回复 1# 502283644
  1. @echo off
  2. for /l %%a in (1,1,10) do call echo %%random:~-1%%#%%a >>$
  3. for /f "tokens=1* delims=#" %%b in ('type $ ^|sort') do echo %%c
  4. del $
  5. pause
复制代码
发表于 2015-3-4 22:21:26 | 显示全部楼层
本帖最后由 cobat 于 2015-3-11 13:32 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,10) do set _%%a=%%a
  4. for /l %%a in (10,-1,1) do (
  5.     set /a mod=!random!%%%%a+1
  6.     for %%b in (!mod!) do echo !_%%b!
  7.     set/a _!mod!=_%%a
  8. )
  9. pause
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,10) do set _!random!_%%a=%%a
  4. for /f "tokens=2 delims==" %%a in ('set _') do echo %%a
  5. pause
复制代码
 楼主| 发表于 2015-3-5 21:31:15 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%z in (%1) do (set /a b+=1)
  4. for /l %%a in (1,1,%b%) do call echo %%random:~-1%%#%%a >>$
  5. for /f "tokens=1* delims=#" %%b in ('type $ ^|sort') do echo %%c>>1.ini
  6. del $
  7. pause
复制代码
回复 2# pcl_test


    为什么不行?
发表于 2015-3-5 21:40:02 | 显示全部楼层
本帖最后由 pcl_test 于 2015-3-7 17:12 编辑

回复 4# 502283644
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%z in ('type %1') do (set /a b+=1)
  4. for /l %%a in (1,1,!b!) do echo !random:~-1!#%%a >>$
  5. for /f "tokens=1* delims=#" %%b in ('type $ ^|sort') do echo %%c>>1.ini
  6. del $
  7. pause
复制代码
发表于 2015-3-6 10:23:16 | 显示全部楼层
3楼的第二个代码可行啊
发表于 2015-3-13 10:51:04 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0123456789
  3. for /l %%i in (0 1 9) do (
  4.     set/a a=!random!%%(10-%%i^)
  5.     for %%a in (!a!) do (
  6.         if "!n:~%%a,1!"=="0" (
  7.             echo,10
  8.         ) else (
  9.             echo,!n:~%%a,1!
  10.         )
  11.     set u=!n:~%%a,1!
  12.     )
  13.     for %%a in (!u!) do set n=!n:%%a=!
  14. )
  15. pause
复制代码
发表于 2015-3-13 11:02:29 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 10) do set _!RANDOM!=%%i
  3. for /f "tokens=2 delims==" %%i in ('set _') do echo,%%i
  4. pause
复制代码
发表于 2015-3-13 20:45:15 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set m=10
  3. for /L %%i in (1,1,%m%) do set $%%i=%%i
  4. :start
  5. for /L %%i in (%m%,-1,1) do (
  6.     set /a n=!random!%%%%i+1
  7.     for %%j in (!n!) do set /a $%%i=$%%j,$%%j=!$%%i!
  8.     echo !$%%i!
  9. )
  10. pause
  11. goto start
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:39 , Processed in 0.033903 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表