Показать полную графическую версию : [решено] как можно организовать скрытый поиск фото по модели камеры?
UmbrellaMegaHack
06-11-2010, 15:20
как можно организовать скрытый поиск фото по модели камеры?
Например, так: (для одной папки!, без вложенных) Option Explicit
Const ForWriting = 2
Dim objShell
Dim objFolder
Dim objFolderItem
Dim objFSO
Dim objTS
Set objShell = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\My Pictures")
If Not objFolder Is Nothing Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile("c:\ListOfFiles.txt", ForWriting, True)
For Each objFolderItem In objFolder.Items
If objFolder.GetDetailsOf(objFolderItem, 24) = "Canon PowerShot S2 IS" Then
objTS.WriteLine objFolderItem.Path
End If
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
Set objFolderItem = Nothing
Set objFolder = Nothing
End If
Set objShell = Nothing
WScript.Quit 0
Iska, начинаю потихоньку уважать vbs, (хотя все равно еще не готов повернуться к нему лицом) не знал, что винда сама может анализировать EXIF/IPTC...
"Canon PowerShot S2 IS" » - помню была такая у моего друга, очень хорошая машинка!
из батника я пользую "ExifTool" (Phil Harvey)
пример использования с подкаталогами:
exiftool.exe -fast -S -r -Model *.\ - получаете просто список файлов и соответсвующую модель, если та указана, нужное занчение копируете в батник:
@Echo off
setlocal EnableExtensions
Set Camera=DiMAGE Z2
Set Tag=.&Set File=.
for /f "tokens=1,* delims=:" %%A in ('exiftool.exe -fast -S -r -Model .\') do call :GetModel "%%A" "%%B"
exit
:GetModel
set Tag=%~1
if "%Tag:~0,9%"=="======== " set File=%Tag:~9%
if "%Tag%"=="Model" if %2==" %Camera%" Echo %File:/=\%
exit /b
UmbrellaMegaHack
03-01-2011, 16:47
Код:
Option Explicit
Const ForWriting = 2
Dim objShell
Dim objFolder
Dim objFolderItem
Dim objFSO
Dim objTS
Set objShell = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\My Pictures")
If Not objFolder Is Nothing Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile("c:\ListOfFiles.txt", ForWriting, True)
For Each objFolderItem In objFolder.Items
If objFolder.GetDetailsOf(objFolderItem, 24) = "Canon PowerShot S2 IS" Then
objTS.WriteLine objFolderItem.Path
End If
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
Set objFolderItem = Nothing
Set objFolder = Nothing
End If
Set objShell = WScript.CreateObject("Shell.Application") »
можно пример скрипта с подкатологами пожалуйста
UmbrellaMegaHack, примерно так:
Option Explicit
Const ForWriting = 2
Dim objShell
Dim objFolder
Dim objFolderItem
Dim objFSO
Dim objTS
Set objShell = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("C:\My Pictures")
If Not objFolder Is Nothing Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile("c:\ListOfFiles.txt", ForWriting, True)
ScanSubFolders objFolder
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
Set objFolder = Nothing
End If
Set objShell = Nothing
WScript.Quit 0
'=======================================================
'=======================================================
Sub ScanSubFolders(objFolder)
Dim objSubFolder
Dim objFolderItem
WScript.Echo "[" & objFolder.Self.Path & "]"
For Each objFolderItem In objFolder.Items
If objFolderItem.IsFolder Then
Set objSubFolder = objFolderItem.GetFolder
If Not objSubFolder Is Nothing Then
ScanSubFolders objSubFolder
End If
Else
If objFolder.GetDetailsOf(objFolderItem, 24) = "Canon PowerShot S2 IS" Then
objTS.WriteLine objFolderItem.Path
End If
End If
Next
End Sub
'=======================================================
P.S. В предыдущем (http://forum.oszone.net/post-1536235-2.html) скрипте исправлена очистка объектной переменной «objShell».С:
Set objShell = WScript.CreateObject("Shell.Application")
на:
Set objShell = Nothing
А почему поиск должен быть скрытый? В Windows 7 все на виду (http://www.outsidethebox.ms/9975/#index) :)
http://oszone.net/user_img/091214200233/image003.png
Ну и даже в ХР можно поставить Desktop Search.
Сорри за оффтоп :)
UmbrellaMegaHack
11-01-2011, 14:49
Меня интересует скрытая автоматика)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC