PDA

Показать полную графическую версию : [решено] как можно организовать скрытый поиск фото по модели камеры?


UmbrellaMegaHack
06-11-2010, 15:20
как можно организовать скрытый поиск фото по модели камеры?

Iska
06-11-2010, 16:48
Например, так: (для одной папки!, без вложенных) 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

NiOl
08-11-2010, 21:59
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") »



можно пример скрипта с подкатологами пожалуйста

Iska
09-01-2011, 19:00
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

Vadikan
10-01-2011, 03:58
А почему поиск должен быть скрытый? В 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