通过匹配文件名中的字符串将文件从一个文件夹复制到另一个文件夹,并通过在文件名后附加日期和时间来重命名复制的文件

时间:2019-07-07 13:58:34

标签: vb.net vbscript

完成一个日志文件后,我需要将服务器日志文件复制到另一个文件夹,然后重命名复制的文件,并将日期和时间添加到文件名中。

来源: C:\ Server \ Logs

目的地:可以由用户使用.BrowseForFolder选择

日志文件名: Server_log_23.txt(“ 23”是日志编号,将从1更改为30)

一个日志文件将在2分钟内完成,并且通过添加一个日志文件将日志写入移至下一个文件(这意味着如果Server_log_23.txt完成,则服务器将开始在Server_logs_24.txt中写入日志,直到{{ 1}},如果log_30完成,它将开始以Server_log_30.txt)写入

1 个答案:

答案 0 :(得分:0)

我得到了这样的代码,但是它没有给出连续的循环

 Const DestinationFile = "C:\Users\Testbench\Desktop\file copy\Destination\"

 Const src = "C:\Users\Testbench\Desktop\file copy\Source\"

 strInput = UserInput( "Please enter file number:" )

 strInput1 = "log_(" &strInput1 &")"

 Dim sDateTimeStamp

 Dim folder

 Sub CopyFile()`enter code here`
    Set fso = CreateObject("Scripting.FileSystemObject")
     srcfile = strInput
     Set folder = fso.GetFolder(src)
     For Each file In folder.files 
     If instr(file.name, strInput) > 0 Then
        srcfile=file.name
        WScript.Echo srcfile
     End If 
 Next
SourceFile= "C:\Users\Testbench\Desktop\file copy\Source\" & srcfile
WScript.Echo SourceFile

sDateTimeStamp = cStr(Year(now())) & _
             Pad(cStr(Month(now())),2) & _
             Pad(cStr(Day(now())),2) & _
             Pad(cStr(Hour(now())),2) & _
             Pad(cStr(Minute(now())),2) & _
             Pad(cStr(Second(now())),2)


WScript.Echo "Copying " & SourceFile & " to " & DestinationFile
fso.CopyFile SourceFile, DestinationFile & srcfile & "_" & sDateTimeStamp & ".txt", True

Set fso = Nothing
End Sub

Function Pad(CStr2Pad, ReqStrLen)
    Dim Num2Pad
    Pad = CStr2Pad
    If len(CStr2Pad) < ReqStrLen Then
        Num2Pad = String((ReqStrlen - Len(CStr2Pad)), "0")
        Pad = Num2Pad & CStr2Pad
    End If
End Function

Function UserInput( myPrompt )
    If UCase( Right( WScript.FullName, 12 ) ) = "\CSCRIPT.EXE" Then
        WScript.StdOut.Write myPrompt & " "
        UserInput = WScript.StdIn.ReadLine
    Else
        UserInput = InputBox( myPrompt )
    End If
End Function

Do while strInput1<30
   wscript.sleep 180
   CopyFile()
   strInput1 = strInput1 + 1
Exit Do
   strInput1 =1
   CopyFile()
   strInput1 = strInput1 + 1
Loop