vbs复制文件的脚本

代码如下:

parentfolder = "c:\"
sourcefile = "c:\windows\log.log"
targetfolder = parentfolder & date & "\"
set objshell = createobject("shell.application")
set objfolder = objshell.namespace(parentfolder)
objfolder.newfolder date
set so=createobject("scripting.filesystemobject")
so.getfile(sourcefile).copy(targetfolder)

经过最近的需要写出了如下代码,可以判断文件是否更新并且文件大小更大

代码如下:

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if

Sub WriteHistory(hisChars, path)
  Const ForReading = 1, ForAppending = 8
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile(path, ForAppending, True)
  f.WriteLine hisChars
  f.Close
End Sub

下面来个功能更多的代码:

代码如下:

WScript.Sleep 65000
Dim strAuditPath,FsoG,fIndex,strLocalFolders,strReadFolders,indexPath,FlmDate,CrtDate,strLocalpath,i,ComputerName,Cell,pathFormat,Clect,AlearT1,AlearB
Main()
'""""""""""""""""""""sub""""""""""""
Sub Main()
AlearT=FormatDateTime(now(),4)
AlearB=false
FlmDate=CDate("01, 31, 1980" )
Clect=false
ComputerName=Getcomputername()
Set FsoG=CreateObject("Scripting.FileSystemObject")
GetSetting
'pathFormat=Left(strLocalpath,Len(strLocalpath)-8) & "Labels"
indexPath=strAuditPath & "Index.txt"
set f=FSOG.OPENTEXTFILE(GetAbPath(strAuditPath) & "logo history.txt",8,true)
f.writeline FormatDateTime(Now(),4) & "\" & cell & "\" & computername
f.close
'***************计算本地FORMAT****************************************************************************
' Getformat
'**************************************************************************************************************
'在这里一个循环比较日志更新日期
do while(1)
   If (fsoG.FileExists(indexPath)) Then
    '指出最近更新时间
   set fIndex=fsoG.GetFile(indexPath)
   CrtDate=fIndex.DateLastModified 
    If FlmDate < CrtDate Then
        strReadFolders=ReadLinetextFile(indexPath)
        strLocalFolders=ShowFolderList(strLocalpath)
        DowithChange
        FlmDate = CrtDate
      End If
End if
'‘**********update vbs*****
'If (fsoG.FileExists(getAbpath(strAuditPath) & "pe.vbs")) Then
'fsog.CopyFile getAbpath(strAuditPath) & "pe.vbs",GetAbpath(GetCPath) & "pe.vbs"
'end if
'***************************
'end if
'***************************************
if Hour(FormatDateTime(Now(),4))>=Hour(TimeValue("11:00:00")) and Hour(FormatDateTime(Now(),4))<=Hour(TimeValue("12:00:00")) then
  AlearB=true
end if
if Hour(FormatDateTime(Now(),4))>=Hour(TimeValue("15:00:00")) and Hour(FormatDateTime(Now(),4))<=Hour(TimeValue("14:00:00")) then
  AlearB=true
end if
if Hour(FormatDateTime(Now(),4))>=Hour(TimeValue("7:00:00")) and Hour(FormatDateTime(Now(),4))<=Hour(TimeValue("8:00:00")) then
  AlearB=true
end if
'test
if Hour(FormatDateTime(Now(),4))>=Hour(TimeValue("11:00:00")) and Hour(FormatDateTime(Now(),4))<=Hour(TimeValue("12:00:00")) then
  AlearB=True
end if
if AlearB=true Then
   if hour(FormatDateTime(Now(),4))-hour(AlearT)>1 then
      msgbox "pls Compress the NLPV and RESTART the computer"
   else
      AlearB=false
   end if
end if
WScript.Sleep 10000
Loop
End Sub
Sub Getformat()
strFormats=ShowFilesList(pathFormat)
  Const ForReading = 1, ForWriting = 2
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile(GetAbPath(strAuditPath) & CELL & " " & ComputerName  & ".txt", ForWriting, True)
for i=0 to UBound(strFormats)
f.WriteLine  left(strFormats(i),len(strFormats(i))-4)
next
f.WriteLine cell
f.WriteLine ComputerName
'
  f.Close
clect =true
End sub
Function ShowFilesList(folderspec)
   Dim fso, f, f1, s(), sf,i
   i=0
   redim s(i)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 in fc
      redim Preserve s(i)
      s(i)= f1.name
      i=i+1
   Next
ShowFilesList=s
End Function
Function ShowFolderList(folderspec)
   Dim fso, f, f1, s(), sf,i
   i=0
   redim s(i)
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set sf = f.SubFolders
   For Each f1 in sf
      redim Preserve s(i)
      s(i)= f1.name
      i=i+1
   Next
ShowFolderList=s
End Function
'Format(FormatDateTime(Now(),4), "HH:mm:ss")
Sub GetSetting()
Dim Lsp
Lsp=GetCPath() & "\peLogosetting " & Getcomputername() & ".txt"
If (Not fsoG.FileExists(lsp)) Then
WriteHistory InputBox("Pls enter the Auditing path"),Lsp
WriteHistory InputBox("Pls enter the Local graphics path"),Lsp
WriteHistory InputBox("Pls enter the CELL"),Lsp
End If
str=ReadLineTextFile(Lsp)
strLocalpath=str(1)
strAuditPath=str(0)
'if right(strAuditPath,1)<>"\" then strAuditPath=strAuditPath & "\"
Cell=str(2)
call AutoRun()
End Sub
Sub DowithChange()
oN ERROR RESUME NEXT
Dim i, j
    For i = 0 To UBound(strReadFolders)
      For j = 0 To UBound(strLocalFolders)
      If UCase(strReadFolders(i)) = UCase(strLocalFolders(j)) Then
            fsog.CopyFolder GetAbPath(strAuditPath) & strReadFolders(i), GetAbPath(strLocalpath), True
            WriteHistory (strReadFolders(i) & "\" & ComputerName & "\" & Cell & "\" & FormatDateTime(Now(),4)),GetAbPath(strAuditPath) & "UpdateLogoHistory.txt"
     End If
      Next
    Next
End Sub
Sub WriteHistory(hisChars, path)
  Const ForReading = 1, ForAppending = 8
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile(path, ForAppending, True)
  f.WriteLine hisChars
  f.Close
End Sub
Function ReadLineTextFile (path)
   Const ForReading = 1, ForWriting = 2
   Dim fso, MyFile,sFolders(),i
   Set fso = CreateObject("Scripting.FileSystemObject")
   i=0
   redim sfolders(i)
   Set MyFile = fso.OpenTextFile(path, ForReading)
   Do While MyFile.AtEndOfLine <> True
    redim Preserve sFolders(i)
    sFolders(i) = MYfile.ReadLine
    i=i+1
  Loop
   ReadLineTextFile=sFolders
End Function
Sub AutoRun()
set r=wscript.createobject("wscript.shell")
yuan = WScript.ScriptFullName
r.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\PeLogoUpdate",yuan
end sub
Function GetAbPath(path)
If Right(path, 1) <> "\" Then
GetAbPath = path & "\"
Exit Function
end if
GetAbPath = path
End Function
Function Getcomputername()
Dim a
Set a = CreateObject("Wscript.Network")
Getcomputername= a.ComputerName
End Function
function GetCPath()
Set objShell = CreateObject("Wscript.Shell")
strPath = Wscript.ScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
Getcpath = objFSO.GetParentFolderName(objFile)
end Function

vbs复制文件夹

需要实现一个复制文件夹的功能,网上找到相关代码,并做了改进,vbs脚本如下

代码如下:

Dim fso, CopyCount
Set fso = CreateObject("Scripting.FileSystemObject")

CopyCount = CopyCount + XCopy(fso, ".\1", ".\2", True)
MsgBox "拷贝了" & CopyCount & "个文件!"

'********************************************************************
'* Function :     XCopy
'*
'* Purpose:  复制文件和目录树。
'*
'* Input:    fso            FileSystemObject 对象实例
'*           source         指定要复制的文件。
'*           destination    指定新文件的位置和/或名称。
'*           overwrite      是否覆盖已存在文件。 Ture 覆盖, False 跳过
'*
'* Output:   返回复制的文件个数
'*
'********************************************************************
Function XCopy(fso, source, destination, overwrite)
    Dim s, d, f, l, CopyCount
    Set s = fso.GetFolder(source)

If Not fso.FolderExists(destination) Then
        fso.CreateFolder destination
    End If
    Set d = fso.GetFolder(destination)

CopyCount = 0
    For Each f In s.Files
        l = d.Path & "\" & f.Name
        If Not fso.FileExists(l) Or overwrite Then
            If fso.FileExists(l) Then
                fso.DeleteFile l, True
            End If
            f.Copy l, True
            CopyCount = CopyCount + 1
        End If
    Next

For Each f In s.SubFolders
        CopyCount = CopyCount + XCopy(fso, f.Path, d.Path & "\" & f.Name, overwrite)
    Next

XCopy = CopyCount
End Function

在脚本文件路径建立一个文件夹,取名1,放入两个文件,运行程序结果如下

(0)

相关推荐

  • vbs实现只复制比目标文件更新的文件

    因为网站需要频繁的更新首页,有时候使用cdn经常导致首页正在生成内容的时候同步数据(可能是冲突,经常导致首页是空的),这就想了先生成一个不是首页的index2.htm然后再复制一遍为index.htm,这样index2的频繁读写也没问题了.所以先判断index2.htm不是空的时候才复制,而且必须是比index.htm更新的时候才复制.这样就需要一些脚本的支持了. 前几天写了一个(bat+xcopy实现只复制比目标文件更新的文件)还是出现为空的情况,这里特加些功能,参考很多网站的文章,感谢百度的

  • Windows 安装IIS出现的问题(无法安装IIS,提示“安装程序无法复制文件IISApp.vbs”)

    这就是典型的windows安全数据库出问题了,可以用以下方法来解决这个问题: Windows安全资料库,在%WinDir%\Security\database里. 台湾的资料库,大陆称为数据库. 在Windows作业系统里带有专门的Esentutl.exe工具,这是一个DOS工具,可用来查看和修复Windows安全资料库. 比如我有一次在安装IIS的元件时,发生了错误: ************************ 复制错误 安装程式无法复制档 iisapp.vbs. 请确认下面指定的位置是

  • 最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS代码简单解析和解决方法

    最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS 及代码分析与病毒处理两种方法 方法一:来自于指间轻舞 此病毒最大的特点在于中毒后,自动感染你的硬盘根目录,并复制病毒文件.无论你是采用双击,还是右键选择打开,或者运行资源管理器都会自动运行其代码(病毒),所以中此病毒后,新手往往打不开盘符,导致数据无法读取. 下面是病毒的代码分析 文件总共有三个 都很简单,已经加上了注解. 文件名:autorun.inf 复制代码 代码如下: [autorun]  open=  shell

  • IE浏览器增加“复制图像地址”的右键菜单的vbs代码

    但IE以及与IE共用右键菜单的MyIE.Sogou等浏览器均没有复制图像链接地址的快捷菜单,通常只有选择图片的属性再在属性对话框中复制图片地址,很麻烦!下面我们给IE添加一个"复制图像地址"的右键菜单,步骤如下: VB新建一个ActiveX Dll工程,工程名:NetCopyURL,将默认生成的类名改为clsCopyURL 在clsCopyURL.cls中添加如下代码: Public Sub CopyImageURL(URL As String) Clipboard.Clear Cli

  • vbs 自动复制U盘的内容

    思路很简单,高层的东西没什么技术含量,引用几个函数或方法就行了.开始我用的是批处理(如果你插入U盘的盘符是J,把课件保存于F盘)打开记事本,键入以下内容: 复制代码 代码如下: :cheat ping 127.0.0.1>nul if exist J:\*.ppt (copy J:\*.ppt F:\ && exit) else goto cheat 保存为main.bat,本来这个文件就够实现此功能了,但我想不到有什么DOS命令可以隐藏命令提示符界面,就不得不编了一个vbs脚本专门

  • vbs病毒制作之一复制自身的vbs脚本

    复制自身到c盘的huan.vbs ASP/Visual Basic代码 复制代码 代码如下: set copy1=createobject("scripting.filesystemobject")          copy1.getfile(wscript.scriptfullname).copy("c:\huan.vbs")

  • 用vbscript实现将脚本的输出复制到剪贴板

    问: 嗨,Scripting Guy!有办法将脚本输出复制到剪贴板吗? -- ZW, Marseilles, France 答: 您好,ZW.如果您不介意用一些疯狂的解决方法,那么实际上将脚本输出复制到剪贴板相当容易.首先,您需要构造一个字符串,其中包含想要的输出.然后,创建 Internet Explorer 的一个实例,然后在其中打开一个空白页.接着,利用 Internet Explorer 对象模型的内置功能,将字符串复制到剪贴板:特别是, 可以使用 clipboardData.SetDa

  • 自动复制U盘文件的VBS脚本

    以下为演示: 一.设置 右键单击,选择编辑 oStr = "txt|jpg|doc" '你要窃取的文件类型,可以自行添加,用"|"隔开 oDistPath = "C:\\windows\\system\\" '保存路径 oFolderName = "Task" '保存文件夹名称 oType = 0 '将保存的文件夹进行伪装 1为task文件夹,2为recycler文件夹,0为不伪装 oOut = 1 '1复制完毕后退出,0复制

  • vbs复制文件夹的实现代码

    需要实现一个复制文件夹的功能,网上找到相关代码,并做了改进,vbs脚本如下 复制代码 代码如下: Dim fso, CopyCountSet fso = CreateObject("Scripting.FileSystemObject") CopyCount = CopyCount + XCopy(fso, ".\1", ".\2", True)MsgBox "拷贝了" & CopyCount & "

  • vbs复制文件的脚本

    复制代码 代码如下: parentfolder = "c:\" sourcefile = "c:\windows\log.log" targetfolder = parentfolder & date & "\" set objshell = createobject("shell.application") set objfolder = objshell.namespace(parentfolder) ob

  • Xcopy 复制文件和目录,包括子目录。

    Xcopy 复制文件和目录,包括子目录. 语法 xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z] 参数 Source  必需的.指定要复制的文件的

  • Windows Powershell 执行文件和脚本

    象运行可执行文件一样,Powershell运行文件和脚本,也必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中. 关于脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码. 执行批处理文件 批处理是扩展名为".bat"的文本文件,它可以包含任何cmd控制台能够处理的命令.当批处理文件被打开,Cmd控制台会逐行执行每条命令.那Powershell能够直接执行批处理吗? 将下列命令保存为ping.bat @echo off

  • 使用vbs下载文件的代码加强版

    说到使用vbs下载文件是不是想到了XMLHTTP呢,呵呵,以下是比较经典的代码: iLocal=LCase(Wscript.Arguments(1)) iRemote=LCase(Wscript.Arguments(0)) Set xPost=createObject("Microsoft.XMLHTTP") xPost.Open "GET",iRemote,0 xPost.Send() set sGet=createObject("ADODB.Strea

  • JavaScript实现删除,移动和复制文件的方法

    本文实例讲述了JavaScript实现删除,移动和复制文件的方法.分享给大家供大家参考.具体如下: 这里利用JavaScript删除.移动和复制文件,运行前请确保文件已经存在,比如在C盘建立test.txt文件,然后在代码里修改为这个路径,再运行代码,就可以看到效果. <html> <head> <title>删除,移动和复制文件</title> </head> <body> <h2>删除,移动和复制文件</h2&g

  • 利用Python复制文件的9种方法总结

    以下是演示**"如何在Python中复制文件"的九种方法**. shutil copyfile()方法 shutil copy()方法 shutil copyfileobj()方法 shutil copy2()方法 os popen方法 os系统()方法 Thread()方法 子进程调用()方法 子进程check_output()方法 1. Shutil Copyfile()方法 该方法只有在目标可写时才将源的内容复制到目的地.如果您没有写入权限,则会引发IOError. 它通过打开输

  • php简单复制文件的方法

    本文实例讲述了php简单复制文件的方法.分享给大家供大家参考,具体如下: <?php /** *author:果冻 *qq:52091199 *wyg517.blog.163.com **/ $file = 'image/a1.jpg'; $newfile = 'a/123.jpg'; //必须有写入权限 if (file_exists($file) == false) { die ('文件不在,无法复制'); } $result = copy($file, $newfile); if ($re

  • VB实现的递归复制文件和搜索文件的代码分享

    在程序中要做一个复制文件夹的功能,用递归写起来很方便.后来要某位仁兄(自己知道就行了 - -)实现一个类似的,貌似不是那么顺利,这里把复制文件夹的递归代码丢出来: Public Shared Sub CopyDirectory(source As String, destination As String) If Directory.Exists(destination) = False Then Try Directory.CreateDirectory(destination) Catch

  • ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)

    FSO文件(File)对象属性 DateCreated 返回该文件夹的创建日期和时间 DateLastAccessed 返回最后一次访问该文件的日期和时间 DateLastModified 返回最后一次修改该文件的日期和时间 Drive 返回该文件所在的驱动器的Drive对象 Name 设定或返回文件的名字 ParentFolder 返回该文件的父文件夹的Folder对象 Path 返回文件的绝对路径,可使用长文件名 ShortName 返回DOS风格的8.3形式的文件名 ShortPath 返

随机推荐