invisiblequantum
Goto Top

Mit Batch ein bestimmtes Bild suchen

Hay, ich hoffe ihr könnt mir weiterhelfen...

Folgendes:
Ich habe mehrere Ordner in denen verschiedene Dateien liegen, meistens .png Bilder.
Jetzt brauche ich einen passenden Befehl der ein Bild raussucht, das im Dateinamen "icon" stehen hat, eine Auflösung von 192x192 hat und im .PNG Format ist.
Wenn es mehrere Bilder gibt auf die, diese Angaben zutreffen, soll die Batch einfach irgendeine nehmen, oder einfach die mit der größten Dateigröße... ist eigentlich egal ^^. Anschließend soll diese eine Datei in das Verzeichnis kopiert werden, in dem die Batch liegt.

Ich weiß, scheint eine komplizierte Angelegenheit zu sein, aber ich denke, dass es gehn wird face-wink

PS: Ich bin noch Änfanger =)

Content-Key: 294119

Url: https://administrator.de/contentid/294119

Printed on: April 16, 2024 at 17:04 o'clock

Member: Friemler
Friemler Jan 25, 2016 at 08:49:56 (UTC)
Goto Top
Moin,

teste mal folgendes:
@echo off & setlocal

set "FileNameMask=*icon*"  
set "FileType=png"  
set "ImgDims=192 x 192"  

set "SrcDir=%~1"  
set "DstDir=%~dp0"  
set "VBScript=%TEMP%\GetImgDimensions.vbs"  

> "%VBScript%" echo.Set objFSO   = CreateObject("Scripting.FileSystemObject")  
>>"%VBScript%" echo.Set objShell = CreateObject("Shell.Application")  
>>"%VBScript%" echo.  
>>"%VBScript%" echo.strFileFullName = objFSO.GetAbsolutePathName(WScript.Arguments(0))  
>>"%VBScript%" echo.strFileFolder   = objFSO.GetParentFolderName(strFileFullName)  
>>"%VBScript%" echo.strFileName     = objFSO.GetFileName(strFileFullName)  
>>"%VBScript%" echo.  
>>"%VBScript%" echo.Set objFolderItem = objShell.Namespace(strFileFolder).ParseName(strFileName)  
>>"%VBScript%" echo.strDimensions     = objFolderItem.ExtendedProperty("Dimensions")  
>>"%VBScript%" echo.strFileDimensions = Mid(strDimensions, 2, Len(strDimensions) - 2)  
>>"%VBScript%" echo.  
>>"%VBScript%" echo.WScript.Echo strFileDimensions  

for %%a in ("%SrcDir%\%FileNameMask%.%FileType%") do (  
  for /f "delims=" %%b in ('cscript /nologo "%VBScript%" "%%~a"') do (  
    if "%%b" equ "%ImgDims%" (  
      copy "%%~a" "%DstDir%%%~nxa" > NUL  
      goto :Done
    )
  )
)

:Done
del "%VBScript%"  

Du musst das Icon des Verzeichnisses, aus dem Du die PNG-Datei herauskopieren willst, mit der Maus auf das Icon der Batchdatei ziehen und dort fallen lassen (Drag&Drop).

Das Script kopiert die erste Datei, auf die alle Kriterien zutreffen.

Gruß
Friemler
Member: InvisibleQuantum
InvisibleQuantum Jan 25, 2016 at 09:19:10 (UTC)
Goto Top
Danke, ich werd's nachher mal testen. Brauche ich dafür VisualBasic /-Studio ?
Member: Friemler
Friemler Jan 25, 2016 at 10:03:38 (UTC)
Goto Top
Zitat von @InvisibleQuantum:

Brauche ich dafür VisualBasic /-Studio ?

Nein, dafür wird der VBScript-Scripthost von Windows verwendet. Der ist auf jedem Windows-System vorhanden. In Firmen wird er jedoch aus Sicherheitsgründen vom Admin manchmal deaktiviert.

Gruß
Friemler
Member: InvisibleQuantum
InvisibleQuantum Jan 26, 2016 at 11:41:32 (UTC)
Goto Top
Danke für die Info =)