华域联盟 vbs vbs复制文件的脚本

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,放入两个文件,运行程序结果如下

您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » vbs复制文件的脚本

转载请保留出处和原文链接:https://www.cnhackhy.com/15247.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部