Overzicht maken 'Genomen op'

Status
Niet open voor verdere reacties.

HansFRAP

Gebruiker
Lid geworden
12 jul 2011
Berichten
202
Beschrijving
Ik had het idee om een tabel te maken waarin de informatie staat die door Verkenner wordt getoond.
Ik dacht dit te kunnen doen door een soort export te maken vanuit het Opdrachtpromt scherm met: DIR /OD >Tabel.txt

Echter:
- Wanneer ik in 'Verkenner' (Win 10) een Foto-directory bekijk dan zijn de kolomnamen: Naam - Datum - Grootte
- Wanneer ik vanuit de 'opdrachtprompt' (DOS) een overzicht maak van dezelfde directory met: DIR /OD dan krijg ik: Datum - Tijd - Grootte - Naam

Verschillen
In Verkenner is de datum de 'Genomen op' datum,
in DOS is de datum de 'Gewijzigd op' datum.

Vraag
Op welke wijze kan ik een tabel krijgen waarin van elk bestand de 'Genomen op' datum staat ipv de 'Gewijzigde op' datum?
Dus een export van file attributen zoals Verkenner die toont.

[Of via een Excel-VBA macro mag ook]
 
Verplaatst naar een wellicht betere categorie.
Succes verder met je vraag. :thumb:
 
Je kunt zo’n 293 verschillende attributen uit een bestand lezen, als ik me niet vergis. Ik heb daar een routine voor gemaakt die ze uitleest, maar daar kan ik nu even niet bij. In verkenner kun je verschillende kolommen zien, afhankelijk van wat je in de map wilt laten zien. In een fotomap zie je andere kolommen dan in een muziekmap. Dat kun je per maptype instellen overigens.
Die macro kan ik morgen wel posten.
 
Macro zou geweldig zijn.

Inmiddels wel code gevonden maar die functie werkt niet voor/op alle foto's.
( Private Function FindPicDate(PicFile As String) As String )
 
Da’s alleen de eerste regel van de macro, daar kunnen we weinig aan zien :)
 
Hier de gevonden code.
= = = = = =

Code:
Private Function FindPicDate(PicFile As String) As String 
      
    Dim bytes() As Byte 
    Dim sLine() As String 
    Dim fSize As Long, ExifDate As Long 
    Dim i As Long, d As Long 
    Dim ff      As Integer 
    Dim Found   As Boolean 
    
    ff = FreeFile 
    fSize = FileLen(PicFile) 
      
    If fSize > 1024 Then fSize = 1024 ' get 1st 1K of file. 
    ReDim bytes(1 To fSize) 

    Open PicFile For Binary As #ff 
        Get #ff, 1, bytes 
    Close ff 
        
    sLine = Split(StrConv(bytes(), vbUnicode), Chr$(0)) 
    
    For i = 0 To UBound(sLine) ' does "Exif" exsist? 
        ExifDate = InStr(1, sLine(i), "Exif") 
        If ExifDate > 0 Then 
            Found = True 
            Exit For 
        End If 
    Next i 
        
    If Found = False Then Exit Function ' return nothing, "Exif" not found! 
    
    For d = i + 1 To UBound(sLine) ' find first ":" in file 
        ExifDate = InStr(1, sLine(d), ":") 
        If ExifDate > 0 Then 
            FindPicDate = sLine(d) ' return date string 
            Exit For 
        End If 
    Next d 
            
End Function
 
Laatst bewerkt:
Je kunt bij de verkenner allerlei opties zichtbaar maken door de muis op de balk boven aan te zetten waar "naam" etc als kolomnaam staat, daar R-muis kiest voor "Meer"... en je krijgt een super lange lijst te zien waar je van alles kunt aanvinken en de weergave volgorde kunt kiezen/aangeven.
 
. . . . maar hoe krijg ik die netjes in een lijstje? (print screen telt niet!)
 
Telt niet... is het huiswerk?:eek:
 
Met Karen's Directory Printer kun je een lijst saven. Date created/Date last modified/Date late Accessed staan erbij. Je kun de volgorde verschuiven met de pijlen rechts. Of het dan overeenkomt met verkenner en/of dos weet ik niet. Kun je in Word bewerken en ook wel in Excel kopiëren al zal dat meer werk zijn.
 
Laatst bewerkt:
@route99
Waarom denk jij, dat het gaat om een huiswerkopdracht?

Volgens mij is deze vraag veel vaker voorbijgekomen, ook op Helpmij.nl Volgens mij is er geen goede oplossing, want het systeem van detailweergave is op die genoemde items na nooit in een lijst vast te leggen. Als het wel kan, moet je dat bewijzen met een screenshot van een dergelijke lijst. Die zijn er niet. Het zijn vaak de vaste items die je ziet zoals datum, gewijzigd op, gemaakt op, veel verder kom je vaak niet. Dat is heel wat anders dan het groot aantal details wat Verkenner weer kan geven.

Gisteravond nog video's bekeken maar het is allemaal hetzelfde en meerdere/andere details zijn niet zien. Laat mij dan een lijst zien op Helpmij.nl (.txt) waar de andere/meerdere details wel in staan.
 
Laatst bewerkt:
Nee, het is geen huiswerk :).
Het gaat mij om een tijdslijn-overzicht te krijgen van foto's die met verschillende camera's door verschillende mensen zijn gemaakt. Wanneer je deze foto's voor presentatie wilt selecteren, is de tijdslijn waarop deze zijn gemaakt wel handig.
Presentatie tools gebruiken datum of naam wanneer je een lijst foto's aanbied.
Ik wil dus overzicht hebben van 'Genomen op' waarmee ik een 'tag' heb om de foto-namen aan te passen en zodoende op de juiste volgorde te plaatsen. Handmatig zijn 3000 foto's wat lastig om even aan te passen.
Verkenner zet deze lijst in de juiste volgorde (gebruikt dus ' Genomen op' als selector) maar dit overzicht heb ik als lijst nodig en niet als een scherm.
 
Ik denk dat OctaFish je de enigste kans kan bieden. Even afwachten.
 
In Powershell kun je meer, maar dat wilde ik pas schrijven zodra bekend was als de TS er over berichten. Ik heb dat netjes gevraagd.
Ik vind het vervelend dat op basis van non-info anderen daar wat van vinden, het staat mij vrij om dat netjes te vragen...

Mijn antwoord mbt Powershell die wel bij die meta-data kan komen, het is krachtiger...
https://gallery.technet.microsoft.com/scriptcenter/get-file-meta-data-function-f9e8d804
@HansFRAP: Gaat dit werken zo bij jou?

Code:
# ----------------------------------------------------------------------------- 
# Script: Get-FileMetaDataReturnObject.ps1 
# Author: ed wilson, msft 
# Date: 01/24/2014 12:30:18 
# Keywords: Metadata, Storage, Files 
# comments: Uses the Shell.APplication object to get file metadata 
# Gets all the metadata and returns a custom PSObject 
# it is a bit slow right now, because I need to check all 266 fields 
# for each file, and then create a custom object and emit it. 
# If used, use a variable to store the returned objects before attempting 
# to do any sorting, filtering, and formatting of the output. 
# To do a recursive lookup of all metadata on all files, use this type 
# of syntax to call the function: 
# Get-FileMetaData -folder (gci e:\music -Recurse -Directory).FullName 
# note: this MUST point to a folder, and not to a file. 
# ----------------------------------------------------------------------------- 
Function Get-FileMetaData 
{ 
  <# 
   .Synopsis 
    This function gets file metadata and returns it as a custom PS Object  
   .Description 
    This function gets file metadata using the Shell.Application object and 
    returns a custom PSObject object that can be sorted, filtered or otherwise 
    manipulated. 
   .Example 
    Get-FileMetaData -folder "e:\music" 
    Gets file metadata for all files in the e:\music directory 
   .Example 
    Get-FileMetaData -folder (gci e:\music -Recurse -Directory).FullName 
    This example uses the Get-ChildItem cmdlet to do a recursive lookup of  
    all directories in the e:\music folder and then it goes through and gets 
    all of the file metada for all the files in the directories and in the  
    subdirectories.   
   .Example 
    Get-FileMetaData -folder "c:\fso","E:\music\Big Boi" 
    Gets file metadata from files in both the c:\fso directory and the 
    e:\music\big boi directory. 
   .Example 
    $meta = Get-FileMetaData -folder "E:\music" 
    This example gets file metadata from all files in the root of the 
    e:\music directory and stores the returned custom objects in a $meta  
    variable for later processing and manipulation. 
   .Parameter Folder 
    The folder that is parsed for files  
   .Notes 
    NAME:  Get-FileMetaData 
    AUTHOR: ed wilson, msft 
    LASTEDIT: 01/24/2014 14:08:24 
    KEYWORDS: Storage, Files, Metadata 
    HSG: HSG-2-5-14 
   .Link 
     Http://www.ScriptingGuys.com 
 #Requires -Version 2.0 
 #> 
 Param([string[]]$folder) 
 foreach($sFolder in $folder) 
  { 
   $a = 0 
   $objShell = New-Object -ComObject Shell.Application 
   $objFolder = $objShell.namespace($sFolder) 
 
   foreach ($File in $objFolder.items()) 
    {  
     $FileMetaData = New-Object PSOBJECT 
      for ($a ; $a  -le 266; $a++) 
       {  
         if($objFolder.getDetailsOf($File, $a)) 
           { 
             $hash += @{$($objFolder.getDetailsOf($objFolder.items, $a))  = 
                   $($objFolder.getDetailsOf($File, $a)) } 
            $FileMetaData | Add-Member $hash 
            $hash.clear()  
           } #end if 
       } #end for  
     $a=0 
     $FileMetaData 
    } #end foreach $file 
  } #end foreach $sfolder 
} #end Get-FileMetaData
 
Laatst bewerkt:
Ik stel toch ook een vraag. Op welke non-info baseer je jouw vraag over dat huiswerk? Je wilt ergens pas over schrijven 'zodra bekend was als de TS er over berichten'. Is mij niet duidelijk. Als ik een oplossing weet, geef ik direct de oplossing. Waarom moeilijk doen? Kost alleen maar ontzettend veel tijd. Maar goed, hopen dat jouw antwoord dan de oplossing is voor HansFRAP.
 
Uit de oude doos
Zet dit bestand in dezelfde map als je foto's
Open het bestand
Klik de knop "EXIF GPS Data .JPG-Files"
Je gewenste datum staat in de kolom "ExifDTOrig"
Als bonus krijg je ook nog GPS-coordinaten mochten die er zijn.
 

Bijlagen

  • helpmij madmuppet exif gps data jpg files decimal.xls
    57,5 KB · Weergaven: 65
Laatst bewerkt:
Als iemand anders een vraag stelt of het huiswerk is, wacht ik eerst het antwoord af.
Het is bepaald niet done om zomaar het huiswerk voor een ander te maken. Dat zie je op veel forums.
Wat wel gedaan wordt is , om er een klein onderdeel uit te pikken en te vragen of de TS daar aan gedacht heeft, als een hint.

Tja, het is dan ook een beetje een ongeschreven weten, die je aan moet kunnen voelen, dat je dan niet even snel alsnog een antwoord geeft voordat de TS de kans heeft gehad om te schrijven of het wel of geen huiswerk was.

In dit geval was het geen huiswerk, dus na deze melding was de weg voor antwoorden vrij.

Het staat je natuurlijk vrij om je daar niet aan te houden, immers het is een ongeschreven wet die ik op veel meer forums tegenkomt, waar zelfs een slotje op kan gaan als blijkt dat het wel huiswerk is, maar het zou je een extra cachet aan sociale empathie geven als je het wel gedaan zou hebben. Dus positief bedoeld dus, ik vond het alleen jammer dat het zo liep en is geen verwijt....
 
Iedereen bedankt voor het meedenken en nakijken wat er nog aanwezig is/was.
Ik kan voorlopig wel weer verder met puzzelen.

@Route99: Ben eigenlijk nog wel benieuwd wat Route99 bedoelt met: de TS. Waar staat dit voor??

@OctaFish: Heb je de bedoelde code al gevonden??
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan