标题: [文本处理] 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
大写懒得整了,楼主自己改改代码吧- @echo off
- setlocal enableDelayedExpansion
- for /f %%i in ('dir *.html /b /a-d') do (
- call :x1
- ren "%%i" "!str4!.html"
- set str4=
- )
-
- :x1
- set str2=34567
- set /a count2=!random!%%5
- call set count3=%%str2:~!count2!,1%%
- for /l %%i in (1,1,!count3!) do (
- call :s1
- set str4=!str3!!str4!
- )
- goto :eof
-
- :s1
- set str1=abcdefghijklmnopqrstuvwxyz1234567890
- set /a count1=!random!%%36
- call set str3=%%str1:~!count1!,1%%
- goto :eof
复制代码
作者: poter 时间: 2012-12-11 19:55
回复 1# cs453761196
VBS版的- option explicit
- Randomize
- dim str1, str2, str3, count1, count2, aa, bb, class1, class2
- function func1()
- str1 = "34567"
- str2 = "abcdefghijklmnopqrstuvwxyz1234567890"
- count1 = right(rnd, 1) mod 5 + 1
- count2 = right(rnd, 2) mod 36 + 1
- end function
-
- function func2()
- func1
- for aa = 1 to mid(str1, count1, 1) step 1
- str3 = str3&mid(str2, count2, 1)
- func1
- next
- end function
-
- set class1 = createobject("scripting.filesystemobject")
- set class2 = class1.getfolder("E:\123")
- for each bb in class2.files
- func2
- if bb.type = "TheWorldURL" then
- bb.name = str3&".html"
- end if
- str3=""
- next
复制代码
作者: 悬崖之树 时间: 2012-12-16 21:42 标题: RE: BAT如何随机重命名文件?
看看我的代码- @echo off
- setlocal enabledelayedexpansion
- set "s=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- for /f %%i in ('dir *.html /b /a-d') do (
-
- set /a a=!random!%%5+3
- for /l %%b in (1 1 !a!) do (
- set /a c=!random!%%62
- call set d=!d!%%s:~!c!,1%%
- )
- ren %%i !d!.html
- set d=
- )
- pause
复制代码
将此批处理文件放在需要改名的文件所在的文件夹下。
作者: 悬崖之树 时间: 2012-12-16 21:48
还有这个:- @echo off
- setlocal enabledelayedexpansion
- set "s=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- :loop
- set /a a=%random%%%5+3
- for /l %%b in (1 1 %a%) do (
- set /a c=!random!%%62
- call set d=!d!%%s:~!c!,1%%
- )
- echo %d% & set d=& goto loop
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |