|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Скрипт поиска файлов по расширению |
|
VBS/WSH/JS - Скрипт поиска файлов по расширению
|
Новый участник Сообщения: 9 |
Профиль | Отправить PM | Цитировать Всем доброго дня.
Встала задача найти на локальных дисках сервера все файлы *.avi, *.mp3 и т.д. с полным путем к файлу а так же время его создания и username пользователя кто записал данный файл. Вид примерно такой 16-08-2012 usename D:\Share\music.mp3 На форуме нашел что то подобное и хочу взять за основу, но в данном примере скрипт ищет на всех локальных дисках и выводит только путь к файлу и имя компьютера. strFile = "C:\FileList.txt" Set objWMI = GetObject("winmgmts:\\.\root\cimv2") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objWSS = CreateObject("WScript.Shell") Set colItem = objWMI.ExecQuery("SELECT DeviceID From Win32_LogicalDisk Where DriveType=3") For Each objItem In colItem strDRV=strDRV &"Drive='"& objItem.DeviceID &"' OR " Next strSELECT="SELECT Name From CIM_DataFile Where ("& Left(strDRV,Len(strDRV)-4) &") AND ("& _ "Extension='AVI' OR " & _ "Extension='MP3' OR " & _ "Extension='WMA' OR " & _ "Extension='MPG' OR " & _ "Extension='MP4')" Set colItem = objWMI.ExecQuery(strSELECT) Set objFile = objFSO.OpenTextFile(strFile,2,vbTrue) objFile.WriteLine objWSS.ExpandEnvironmentStrings("%ComputerName%"& vbCRLF) For Each objItem In colItem objFile.WriteLine(objItem.Name) Next objFile.Close |
|
Отправлено: 15:33, 16-08-2012 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Для определения даты создания файла используйте свойство CreationDate:
Если "username пользователя" - это имя владельца объекта, то вот пример функции для определения владельца: Function Get_Owner_FSO(strPath) Dim objWMI, objSecSettings, objSD, objFS Dim strPathWMI, strResult, strTemp strPathWMI = Replace(strPath, "\", "\\", 1, -1, vbTextCompare) On Error Resume Next Set objFS = CreateObject("Scripting.FileSystemObject") Set objWMI = GetObject("winmgmts:\\.\root\CIMV2") If Err.Number = 0 Then Set objFS = CreateObject("Scripting.FileSystemObject") strTemp = objFS.GetDrive(Left(strPath, 2)).FileSystem Set objFS = Nothing If Err.Number = 0 Then If StrComp(strTemp, "NTFS", vbTextCompare) = 0 Then Set objSecSettings = objWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & strPathWMI & "'") If Err.Number = 0 Then If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then strResult = objSD.Owner.Domain & "\" & objSD.Owner.Name Else strResult = "Не удалось прочитать дескриптор безопасности объекта." End If Set objSD = Nothing Else strResult = "Ошибка " & Err.Number & " при обращении к объекту." & vbNewLine & Err.Description Err.Clear End If Set objSecSettings = Nothing Else strResult = "Файловая система " & UCase(strTemp) & " не поддерживается." End If Else strResult = "Ошибка " & Err.Number & " при определении типа файловой системы." & vbNewLine & Err.Description Err.Clear End If Else strResult = "Ошибка " & Err.Number & " при подключении к WMI-пространству." & vbNewLine & Err.Description Err.Clear End If Set objWMI = Nothing On Error GoTo 0 Get_Owner_FSO = strResult End Function |
Отправлено: 16:50, 16-08-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:10, 16-08-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Пробуйте:
|
Последний раз редактировалось Iska, 16-08-2012 в 17:48. Отправлено: 17:41, 16-08-2012 | #4 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Этот скрипт выводит сообщение для пользователя с кнопкой Ок все работает и вывод какой хотелось, как это все в файл запихать и выбор по дискам D:\ H:\ G:\ ?
|
|
Отправлено: 10:48, 17-08-2012 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Rusya89:
Цитата Rusya89:
Цитата Rusya89:
Откуда уверенность, что такие диски — «D:\ H:\ G:\» — наличествуют? А если каких-то нет? И что значит — «выбор по дискам»? |
|||
Отправлено: 15:11, 17-08-2012 | #6 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 16:13, 17-08-2012 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Приведите здесь результаты исполнения (раздельно):
strComputer = "server" For Each elem In GetObject("WinNT://" & strComputer & "/LanmanServer,FileService") WScript.Echo elem.Name, vbTab, elem.Path Next и укажите, какие ресурсы, из перечисленных, будут участвовать в поиске. Попробуем их отобрать. |
Отправлено: 21:02, 17-08-2012 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Сортировка файлов по расширению | cyber_ua | Скриптовые языки администрирования Windows | 9 | 07-10-2012 23:16 | |
Скрипт поиска и копирования файлов в папку. Как реализовать? | Pozia | AutoIt | 5 | 31-03-2012 18:47 | |
VBS/WSH/JS - Нужен VBS скрипт для поиска файлов по маске и копирование его в определенное место | exekill | Скриптовые языки администрирования Windows | 0 | 17-03-2012 10:46 | |
VBS/WSH/JS - Помогите улучшить скрипт для поиска и удаления файлов | UpDaTe | Скриптовые языки администрирования Windows | 4 | 23-03-2011 04:33 | |
Фильтр по расширению файлов для Win 2003 | L13 | Microsoft Windows NT/2000/2003 | 2 | 07-06-2006 10:46 |
|