У меня есть сценарий VBS, который мне нужно запускать ежемесячно, который собирает информацию о файле, например, имя файла, тип, дату изменения и т. Д. Когда я обрабатываю каждый файл, он сохраняет все это в файл CSV, чтобы я мог обработать его в Excel.
Для запуска скрипта я устанавливаю командный файл .bat
Проблема в том, что мне нужен некоторый интерфейс с графическим интерфейсом, чтобы при запуске пакетного или VBS-файла он просил пользователя ввести букву диска для сканирования.
Это код, который у меня есть:
test.vbs:
Option Explicit
Dim objFS, objFld
Dim objArgs
Dim strFolder, strDestFile, blnRecursiveSearch
Dim strLines()
Dim i
Dim strCsv
i = 0
' 'Get the commandline parameters
' Set objArgs = WScript.Arguments
' strFolder = objArgs(0)
' strDestFile = objArgs(1)
' blnRecursiveSearch = objArgs(2)
'###################################
'MAKE SURE THESE VALUES ARE CORRECT
'###################################
strFolder = "C:\"
strDestFile = "C:\test\Output.csv"
blnRecursiveSearch = True
'Create the FileSystemObject
Set objFS=CreateObject("Scripting.FileSystemObject")
'Get the directory you are working in
Set objFld = objFS.GetFolder(strFolder)
'Now get the file details
GetFileDetails objFld, blnRecursiveSearch
'Write the csv file
Set strCsv = objFS.CreateTextFile(strDestFile, True)
strCsv.Write Join(strLines, vbCrLf)
'Close and cleanup objects
strCsv.Close
Set strCsv = Nothing
Set objFld = Nothing
Set strFolder = Nothing
Set objArgs = Nothing
Private Sub GetFileDetails(fold, blnRecursive)
Dim fld, fil
dim strLine(5)
If blnRecursive Then
'Work through all the folders and subfolders
For Each fld In fold.SubFolders
GetFileDetails fld, True
Next
End If
'Now work on the files
For Each fil in fold.Files
strLine(0) = fil.Path
strLine(1) = fil.Type
strLine(2) = fil.Size
strLine(3) = fil.DateCreated
strLine(4) = fil.DateLastModified
strLine(5) = fil.DateLastAccessed
Redim Preserve strLines(i)
strLines(i) = Join(strLine, ",")
i = i + 1
Next
end sub
И беги.бат
cscript.exe C:\script\test.vbs
Как видите, test.vbs указывает, какой раздел сканировать и захватывать. код: strFolder = "C:\"
Что бы вы порекомендовали, люди, работающие с этим, гораздо менее опытны, чем я, с VB, поэтому им потребуется какой-то графический интерфейс, который будет запрашивать ввод буквы диска, а затем изменять код строки strFolder = "C:\"
какую бы букву диска они не вводили, а затем запускаем test.vbs.
Любая помощь приветствуется.
:) Ура