怎样用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:\")

理论与实际上都是可以的,但是实现以及 *** 作起来太麻烦,以至于远远超过手动ctl+c和ctl+v的 *** 作量。好吧,或许你不信,那我给你解释一下到底如何麻烦。首先,复制辩顷稿的话,vbs脚本不能访问剪切板,要通过生成其它组件的对象来调用访问剪切板。这意味着什么呢?意味着你必须先把东西复制一下携孝,然后再打开vbs脚本去读你复制在剪切板上的内容。可这时候如果手动 *** 作的话已经可以粘贴了。但用vbs则只是刚刚读取复制的内容。怎么样?开始麻烦了吧。其次,你要粘贴到哪呢?好吧,你说随便一个记事本,恩,没问题,如果是空的话,我以写模式打开写进去保存就ok了。可如果里面有内容呢?我是覆盖内容还是补充模式粘贴?如果你不往记事本而是word或者excel文件里面粘贴呢?又或者你复制的是图片或者其它影音文件呢?这都是vbs复杂 *** 作,还不如手动处理的。当然,我也不是说这样做不可以,而是如果单纯的一次两次的工作,你还不如手动乎则做。倒是工作量频繁而巨大并且重复性强了,可以写个vbs脚本来实现。说了这么多,我给你个简单的满足你功能的代码,你看看就明白了。Set objHTML=CreateObject("htmlfile") ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text") MsgBox ClipboardText '这里d出你复制的内容,别复制除文字外的东西啊set fso = createobject("scripting.filesystemobject")Set output = fso.OpenTextFile("c:\1.txt",2) '这里可以自定义你要粘贴的文件名output.Write ClipboardTextoutput.CloseSet fso = NothingSet objHTML = nothing其实这也不算粘贴了,只是从剪切板复制后把内容读出来写到一个记事本里。真正的粘贴其实也就是写 *** 作。怎么样,这只是一个记事本,如果是excel或者网页上的文本框呢?呵呵,希望对您有帮助。全手打,求采纳!回答补充:看你网站什么样了,其实或许可以换种方法,把数据保存到excel里面的,不过不知道你那边详细情况。 好吧,其实可以做一个循环,每5s把剪切板里的内容保存到excel里面去,前提就是你在5s内copy新的内容,不然等于又粘贴一遍旧的。

@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


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

原文地址: https://outofmemory.cn/tougao/12120069.html

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

发表评论

登录后才能评论

评论列表(0条)

保存