怎样用vbs剪切一个文件夹所有txt文件(包括子文件夹)到E盘

怎样用vbs剪切一个文件夹所有txt文件(包括子文件夹)到E盘,第1张

'清单滚举族

'1.获得文件大弊中的所有.txt文件

'2.将所有文件移动到E:盘'函数MoveTxtFiles(folderspec)

'parameter1 folderspec类型字符串 文件夹名Function MoveTxtFiles(folderspec)

Dim fso,fl,fs

Set fso=CreateObject("Scripting.FileSystemObject")

Set fl = fso.GetFolder(folderspec)

Set fs=fl.Files

for each f in fs

If SearchTxtFile("\.txt$",f.Name) Then

f.Move("E:\")

End If

next

Set fso=Nothing

End Function '函数SearchTxtFile(pattern,Fn) 匹配 文答链件扩展名

'parameter1 pattern 匹配模式 字符串类型

'parameter2 Fn 文件名 字符串类型

Function SearchTxtFile(pattern,Fn)

Dim regEx,Matches

Set regEx=new RegExp

regEx.Pattern = pattern

regEx.IgnoreCase = True

regEx.Global = True

Set Matches = regEx.Execute(Fn)

for each Match in Matches

SearchTxtFile=True

Exit Function

Next

SearchTxtFile=False

Set regEx=Nothing

End Function

MoveTxtFiles("C:\")

@Echo Off&Setlocal Enabledelayedexpansion

:loop

For /f "tokens=*" %%i in 举族亮('dir /b /o-d /s "穗绝D:\ALL\*.log"') do (

Set /a n+=1

Move /y "%%i" "E:\CACHE\"

If !n!==5 Goto delete

)

Rem 以上为移动最新的5个log文件到E:\CACHE\目录下.

:delete

For /d %%i in ("D:\ALL\*") do (Rd /q /s "%%i")

Rem 删除正宽D盘ALL文件夹下的全部文件夹(ALL保留)

Ping -n 31 127.1>nul

Rem 延时30秒

Goto loop

Rem 30秒循环

Pause

用fso的movefile会出现权限不足的衡悉颤情况 那样代码不能执行 所以 用copyfile 再deletefile 避免了不必要的麻烦

Set fso=CreateObject("scripting.filesystemobject")

fso.MoveFile "文件路径","目标"

这个并不好用

Set fso=CreateObject("scripting.filesystemobject")

fso.CopyFile "文件路径","目标"

fso.DeleteFile "文件路径"

不要陆核太执着了不是没有而咐败是movefile十分不好用 当初我也不想这样用。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12167521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存