Board logo

标题: [文本处理] BAT如何随机重命名文件? [打印本页]

作者: cs453761196    时间: 2012-12-10 20:34     标题: BAT如何随机重命名文件?

跪求高手给一个最简单的随机重命名BAT!
在线等啊.
有的和我说一下.

要求: 文件夹内 .html 文件随机3位数~7位数 以字母与数字随机无序命名!

跪求高手啊.

不知道小弟的表述各位大哥明白没.

就是文件夹内有1000 .html 文件   然后随机变成   f45a5.html  s4f8s.html  ui26f6j.html  这样的形式
作者: poter    时间: 2012-12-11 19:03

回复 1# cs453761196


    大写懒得整了,楼主自己改改代码吧
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. for /f %%i in ('dir *.html /b /a-d') do (
  4. call :x1
  5. ren "%%i" "!str4!.html"
  6. set str4=
  7. )
  8. :x1
  9. set str2=34567
  10. set /a count2=!random!%%5
  11. call set count3=%%str2:~!count2!,1%%
  12. for /l %%i in (1,1,!count3!) do (
  13. call :s1
  14. set str4=!str3!!str4!
  15. )
  16. goto :eof
  17. :s1
  18. set str1=abcdefghijklmnopqrstuvwxyz1234567890
  19. set /a count1=!random!%%36
  20. call set str3=%%str1:~!count1!,1%%
  21. goto :eof
复制代码

作者: poter    时间: 2012-12-11 19:55

回复 1# cs453761196


    VBS版的
  1. option explicit
  2. Randomize
  3. dim str1, str2, str3, count1, count2, aa, bb, class1, class2
  4. function func1()
  5. str1 = "34567"
  6. str2 = "abcdefghijklmnopqrstuvwxyz1234567890"
  7. count1 = right(rnd, 1) mod 5 + 1
  8. count2 = right(rnd, 2) mod 36 + 1
  9. end function
  10. function func2()
  11. func1
  12. for aa = 1 to mid(str1, count1, 1) step 1
  13. str3 = str3&mid(str2, count2, 1)
  14. func1
  15. next
  16. end function
  17. set class1 = createobject("scripting.filesystemobject")
  18. set class2 = class1.getfolder("E:\123")
  19. for each bb in class2.files
  20. func2
  21. if bb.type = "TheWorldURL" then
  22. bb.name = str3&".html"
  23. end if
  24. str3=""
  25. next
复制代码

作者: 悬崖之树    时间: 2012-12-16 21:42     标题: RE: BAT如何随机重命名文件?

看看我的代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "s=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  4. for /f %%i in ('dir *.html /b /a-d') do (
  5.    set /a a=!random!%%5+3
  6.    for /l %%b in (1 1 !a!) do (
  7.       set /a c=!random!%%62
  8.       call set d=!d!%%s:~!c!,1%%
  9.    )
  10. ren %%i !d!.html
  11. set d=
  12. )
  13. pause
复制代码
将此批处理文件放在需要改名的文件所在的文件夹下。
作者: 悬崖之树    时间: 2012-12-16 21:48

还有这个:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "s=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  4. :loop
  5. set /a a=%random%%%5+3
  6. for /l %%b in (1 1 %a%) do (
  7.       set /a c=!random!%%62
  8.       call set d=!d!%%s:~!c!,1%%
  9. )
  10. echo %d% & set d=&  goto loop
  11. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2