Vbscript msgbox超出文件列表

时间:2015-12-14 11:30:13

标签: vbscript msgbox filelist

我是vbs的新手,但是我需要制作一个脚本,将文件从一个文件夹复制到另一个文件夹,然后读取复制文件的漏洞列表,并创建一个包含这些名称的日志文件。这是我得到它的地方。我需要做的另一件事是从这个列表中制作某种msgbox / IEmsg。这个msgbox应该包含刚刚复制的脚本的所有文件名,即行下的行。

这是我的剧本:

StrMonth = Month(Date)
 If Len(strMonth) = 1 Then
 strMonth = "0" & strMonth
 End If
 StrDay = Day(Date)
 If Len(strDay) = 1 Then
 strDay = "0" & strDay
 End If
 StrYear = Year(Date)

 FolderName = "c:\Rafel" & strDay & "." & strMonth & "." & StrYear
Set objFSO = CreateObject("Scripting.FileSystemObject")
SET objFolder = objFSO.CreateFolder(FolderName)
 objFSO.CopyFile "c:\Rafel\files\*.*", FolderName & "\"

  Wscript.Sleep 1000
  IF objFSO.FileExists( FolderName & "\database.txt") THEN
    Wscript.Echo "Folder created, files are copied."
  END IF


SET objFSO = CreateObject("Scripting.FileSystemObject") 
FILEFOLDER = FolderName
SET objFolder = objFSO.GetFolder(FILEFOLDER)
SET filelist = objFolder.Files
FILELOG = FolderName & "\file log.log"

FOR EACH objFile IN filelist
        FILENAME = FILENAME & "###" & Now & " File copied" & "###" & vbCrlf &_
                  "    File name:" & objFile.Name & vbCrlf &_
                    "    Create date:" & objFile.DateLastModified & vbCrlf &_
                      "    Size:" & objFile.Size & vbCrlf &_
                        vbCrlf
NEXT
SET objFile = objFSO.CreateTextFile(FILELOG)
              objFile.Write vbCrlf
              objFile.Write(FILENAME) 
              objFile.Close

正如您所看到的,它可以复制和创建包含文件列表的日志文件。但是,我如何制作一个带有这些文件列表的消息框?我试过了,for each,但每个文件只是“垃圾邮件”msgbox。

我是一个菜鸟所以请记住这一点。 :)

1 个答案:

答案 0 :(得分:1)

使用自定义wscript.shell弹出框来扩展msgbox的最大字符数并相应地显示msgbox。

More info

代码。

StrMonth = Month(Date)
 If Len(strMonth) = 1 Then
 strMonth = "0" & strMonth
 End If
 StrDay = Day(Date)
 If Len(strDay) = 1 Then
 strDay = "0" & strDay
 End If
 StrYear = Year(Date)

 FolderName = "c:\Rafel" & strDay & "." & strMonth & "." & StrYear
Set objFSO = CreateObject("Scripting.FileSystemObject")
SET objFolder = objFSO.CreateFolder(FolderName)
 objFSO.CopyFile "c:\Rafel\files\*.*", FolderName & "\"

  Wscript.Sleep 1000
  IF objFSO.FileExists( FolderName & "\database.txt") THEN
    Wscript.Echo "Folder created, files are copied."
  END IF


SET objFSO = CreateObject("Scripting.FileSystemObject") 
FILEFOLDER = FolderName
SET objFolder = objFSO.GetFolder(FILEFOLDER)
SET filelist = objFolder.Files
FILELOG = FolderName & "\file log.log"

FOR EACH objFile IN filelist
        FILENAME = FILENAME & "###" & Now & " File copied" & "###" & vbCrlf &_
                  "    File name:" & objFile.Name & vbCrlf &_
                    "    Create date:" & objFile.DateLastModified & vbCrlf &_
                      "    Size:" & objFile.Size & vbCrlf &_
                        vbCrlf
NEXT
SET objFile = objFSO.CreateTextFile(FILELOG)
              objFile.Write vbCrlf
              objFile.Write(FILENAME) 
              objFile.Close

Dim objShell : Set objShell = CreateObject("Wscript.Shell")
objShell.Popup FILENAME, 0, "Filenames", 0