[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 5# tmplinshi
很好的东西,有做正则表达式,虽然只是字符串替换,但呈现的特性是美丽的,有求字符串长度的折半算法,实用性高,因为论坛经常有人问生成随机字符串的问题,也有标准exe的感觉,帮助内容很规范。
好的东西需要推广和完善,需要经得起实践的检验,建议以函数(实际为代码块)的方式发布,毕竟bat和exe是不一样的,如:

1.按照使用一般命令的习惯,使用者一般会忘记用call调用,如下的代码就会导致echo,456得不到执行:
  1. @echo off
  2. echo,123
  3. rstr.bat
  4. echo,456
复制代码
正确的用法:
  1. @echo off
  2. echo,123
  3. call,rstr.bat
  4. echo,456
复制代码
同理,因为忘记用call调用,会开启新的cmd进程执行rstr.bat,如下的代码会产生含执行路径的输出,影响效果或其他:
  1. @echo off
  2. for /l %%a in (1 1 5) do rstr
复制代码
输出:
  1. da84f0qq8s
  2. e:\test>rstr
  3. tv78846dp3
  4. e:\test>rstr
  5. nxpx0f6hk0
  6. e:\test>rstr
  7. jutis5882j
  8. e:\test>rstr
  9. aun0gda121
复制代码
正确的用法:
  1. @echo off
  2. for /l %%a in (1 1 5) do call,rstr
复制代码
2.可能因为在很小的时间间隔内做相同的初始化工作的原因,如下的代码会产生重复的字符串,原因不明,猜测同一bat会分配相同的资源给for/f的命令部分使用。
  1. @echo off
  2. for /f "delims=" %%b in ('rstr') do echo,%%b
  3. for /f "delims=" %%b in ('rstr') do echo,%%b
  4. for /f "delims=" %%b in ('rstr') do echo,%%b
  5. for /f "delims=" %%b in ('rstr') do echo,%%b
  6. for /f "delims=" %%b in ('rstr') do echo,%%b
  7. for /f "delims=" %%b in ('rstr') do echo,%%b
  8. for /f "delims=" %%b in ('rstr') do echo,%%b
  9. for /f "delims=" %%b in ('rstr') do echo,%%b
  10. for /f "delims=" %%b in ('rstr') do echo,%%b
  11. for /f "delims=" %%b in ('rstr') do echo,%%b
  12. for /f "delims=" %%b in ('rstr') do echo,%%b
  13. for /f "delims=" %%b in ('rstr') do echo,%%b
  14. for /f "delims=" %%b in ('rstr') do echo,%%b
  15. for /f "delims=" %%b in ('rstr') do echo,%%b
  16. for /f "delims=" %%b in ('rstr') do echo,%%b
  17. for /f "delims=" %%b in ('rstr') do echo,%%b
  18. for /f "delims=" %%b in ('rstr') do echo,%%b
  19. for /f "delims=" %%b in ('rstr') do echo,%%b
  20. for /f "delims=" %%b in ('rstr') do echo,%%b
  21. for /f "delims=" %%b in ('rstr') do echo,%%b
复制代码
输出:
  1. 3rggb4hzgo
  2. 3rggb4hzgo
  3. 3rggb4hzgo
  4. 3rggb4hzgo
  5. 3rggb4hzgo
  6. 3rggb4hzgo
  7. frwrek6nok
  8. frwrek6nok
  9. frwrek6nok
  10. frwrek6nok
  11. frwrek6nok
  12. frwrek6nok
  13. frwrek6nok
  14. frwrek6nok
  15. frwrek6nok
  16. frwrek6nok
  17. frwrek6nok
  18. frwrek6nok
  19. frwrek6nok
  20. frwrek6nok
复制代码
看得多说得多,远比不上写得多。

TOP

返回列表