|
本帖最后由 dos时代菜鸟 于 2018-4-24 10:01 编辑
把 需要 操作的文件夹 拖放 给这个 vbs 就可以实现了。vbs 脚本旁边会 多出一个 change.txt 文件 就是 变更记录。
不处理 子目录 内容。
先将 目标文件夹 中的文件 名称存入一个 old.txt 文件,
在 循环读取 old.txt 内容,把 其包含的文件 更名,并将 更名过程写入 change.txt 文件中
脚本包含一个 随机生成 包含字符和数字的16位字符串 的函数。
- Set os=CreateObject("Wscript.shell")
- set fs=createobject("scripting.filesystemobject")
- If WScript.Arguments.Count=0 Then
- wscirpt.echo "没有参数!"
- wscirpt.quit
- End If
- pathx=fs.GetFile(WScript.scriptFullName).ParentFolder.Path
- Set dir0=fs.getfolder(WScript.Arguments(0))
- Set Change=fs.OpenTextFile(pathx&"\Change.txt",2,True)
- Set Old=fs.OpenTextFile(pathx&"\Old.txt",2,True)
- For Each p0 In dir0.Files
- OLD.WriteLine p0.ParentFolder&""&p0.Name
- Next
- old.Close
- Set Old=fs.OpenTextFile(pathx&"\Old.txt",1,false)
- DO While old.AtEndOfStream <> True
- Change_name=namex()
- Do while fs.FileExists(change_name)=True
- Change_name=namex()
- Loop
- Set p0=fs.GetFile(old.readline)
- Change.WriteLine p0.ParentFolder&""&p0.Name&" , "&p0.ParentFolder&""&Change_name
- fs.MoveFile p0,p0.ParentFolder&""&Change_name
- loop
- old.Close
- change.Close
- Function namex()
- str="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9"
- namex=""
- Randomize '初始化随机数生成器。
- For n=1 To 16
- MyValue = Int(36 * Rnd+1) ' 产生 0 到 35 之间的随机数。
- 'WScript.Echo myvalue
- namex=namex&split(str,",")(myvalue-1)
- Next
- end Function
复制代码 |
-
-
rnd.zip
803 Bytes, 下载次数: 5, 下载积分: 无忧币 -2
|