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

[日期时间] 批处理如何按指定数量生成在指定时间范围内随机不重复的时间点

[复制链接]
发表于 2016-12-6 09:39:01 | 显示全部楼层
回复 14# tuquan


    需要单独安装PowerShell才行
发表于 2016-12-6 22:24:12 | 显示全部楼层
  1. #python生成随机时间段
  2. #2016年12月6日18:34:26 codegay
  3. #参考资料 http://www.runoob.com/python/python-date-time.html
  4. #Python 取一个时间段里面的时间 https://segmentfault.com/q/1010000006617581

  5. import time
  6. import random
  7. st = "2016-12-6 18:40:36"
  8. et = "2016-12-16 18:40:44"
  9. tf = "%Y-%m-%d %H:%M:%S"

  10. name = """11
  11. 22
  12. 33
  13. 44
  14. 狗三
  15. 猫4
  16. 猪八"""
  17. namelist = name.splitlines()
  18. count = len(namelist)

  19. print(namelist)

  20. def random_time(st,et,count=1):
  21.     start = int(time.mktime(time.strptime(st,tf)))
  22.     end = int(time.mktime(time.strptime(et,tf)))
  23.     mktime =  random.sample(range(start,end),count)
  24.     strtime = [time.strftime(tf,time.localtime(r)) for r in sorted(mktime)]
  25.     return strtime

  26. result = random_time(st,et,count)

  27. random.shuffle(namelist)#打乱名单的顺序

  28. for t in zip(result,namelist):
  29.     print(*t)


  30. """
  31. 输出:
  32. ['11', '22', '33', '44', '狗三', '猫4', '猪八']
  33. 2016-12-08 04:00:26 33
  34. 2016-12-09 11:16:06 猪八
  35. 2016-12-12 08:13:51 狗三
  36. 2016-12-12 11:57:52 猫4
  37. 2016-12-12 12:56:37 11
  38. 2016-12-12 22:20:52 44
  39. 2016-12-16 02:47:04 22
  40. """
复制代码

评分

参与人数 1技术 +1 收起 理由
happy886rr + 1 学习了

查看全部评分

发表于 2018-5-31 23:16:56 | 显示全部楼层
本帖最后由 taofan712 于 2018-5-31 23:18 编辑

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :LOOP
  4. set/a H=8+%random%%%2
  5. if %H% equ 8 (set/a M=30+%random%%%30) else (set/a M=%random%%%31)
  6. set/a S=%random%%%60,MS=%random%%%60
  7. CALL :help %H% %M% %S% %MS%

  8. set/a H=11+%random%%%2
  9. if %H% equ 11 (set/a M=30+%random%%%30) else (set/a M=%random%%%31)
  10. set/a S=%random%%%60,MS=%random%%%60
  11. CALL :help %H% %M% %S% %MS%

  12. set/a H=14
  13. set/a M=%random%%%30,S=%random%%%60,MS=%random%%%60
  14. CALL :help %H% %M% %S% %MS%

  15. set/a H=17+%random%%%2
  16. if %H% equ 17 (set/a M=30+%random%%%30) else (set/a M=%random%%%31)
  17. set/a S=%random%%%60,MS=%random%%%60
  18. CALL :help %H% %M% %S% %MS%

  19. PAUSE
  20. GOTO LOOP

  21. :help
  22. set/a n=0
  23. for %%a in (%1 %2 %3 %4) do (
  24.     set var=00%%a:
  25.     set/a n+=1
  26.     if !n! equ 4 (set var=!var:~-3,-1!) else (set var=!var:~-3!)
  27.     set/p tp=!var!<nul
  28. )
  29. echo;
  30. :eof
复制代码
啧啧啧,挺有意思的一个题目,我却没有巧妙思路,也是无趣。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:38 , Processed in 0.009794 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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