Hello, I want to extract extract exif data (ISO, Keywords, shutter speed, Date taken, software, etc.) from a JPG that is stored on my PC. I already used the "Get Files from Folder", but that just provides the general properties data. I want to get the details in properties, which contain the exif data. Any ideas? Thanks!
Solved! Go to Solution.
For individual image file and specific records copy paste the below code into a blank Flow editor.
Change the file path in the Set variable (first line).
Run the Flow to see the output.
SET FullFilePath TO $'''D:\\Test\\P1000231.JPG'''
File.GetPathPart File: FullFilePath Directory=> Directory FileName=> FileName
Scripting.RunVBScript VBScriptCode: $'''Dim oAppShell, oFolder, output,i
Set objFso = CreateObject(\"Scripting.FileSystemObject\")
Set oAppShell = CreateObject(\"Shell.Application\")
varFolderPath = \"%Directory%\"
Set oFolder = oAppShell.Namespace(varFolderPath)
File = \"%FileName%\"
output = oFolder.GetDetailsOf(oFolder.items.Item(File),0) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),1) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),30) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),32)
WScript.Echo output''' ScriptOutput=> VBScriptOutput
Text.SplitText.SplitWithDelimiter Text: VBScriptOutput CustomDelimiter: $'''|''' IsRegEx: False Result=> TextList
Display.ShowMessageDialog.ShowMessage Message: $'''The camera model is: %TextList[2]%''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
The yellow highlighted are the ones where you give the numbers.
Example of 4 different numbers. Add the ones you need and remove others.
Note that the pipe | symbol is not appended to the last one in line no. 14. (use of pipe explained below)
The idea is to produce a text output variable separated by a pipe | delimiter.
And then split using the delimiter. This will give a List variable for each of those numbers
Access the individual elements using the notation for instance as %TextList[2]%
(You can even create a customised vbscript function where you just pass the image path and only a single number from PAD and it will return the value of that number. This function can then be called again and again for different numbers in each call.)
Hi @Fuji98
These details will have to be retrieved by an external scripting program like vbs, powershell, python or any other.
Here is one in Vbscript.
Set the folder path as you would like to.
On running the script, the output variable will have all the metadata details of the image.
The ones that are blank are absent for my image.
There are 321 metadata properties that will be retrieved.
You can choose the ones you want by adding an If condition within the vbscript using the below numbers.
0 Name
1 Size
2 Item type
3 Date modified
4 Date created
5 Date accessed
6 Attributes
7 Offline status
8 Availability
9 Perceived type
10 Owner
11 Kind
12 Date taken
13 Contributing artists
14 Album
15 Year
16 Genre
17 Conductors
18 Tags
19 Rating
20 Authors
21 Title
22 Subject
23 Categories
24 Comments
25 Copyright
26 #
27 Length
28 Bit rate
29 Protected
30 Camera model
31 Dimensions
32 Camera maker
33 Company
34 File description
35 Masters keywords
36 Masters keywords
42 Program name
43 Duration
44 Is online
45 Is recurring
46 Location
47 Optional attendee addresses
48 Optional attendees
49 Organizer address
50 Organizer name
51 Reminder time
52 Required attendee addresses
53 Required attendees
54 Resources
55 Meeting status
56 Free/busy status
57 Total size
58 Account name
60 Task status
61 Computer
62 Anniversary
63 Assistant's name
64 Assistant's phone
65 Birthday
66 Business address
67 Business city
68 Business country/region
69 Business P.O. box
70 Business postal code
71 Business state or province
72 Business street
73 Business fax
74 Business home page
75 Business phone
76 Callback number
77 Car phone
78 Children
79 Company main phone
80 Department
81 E-mail address
82 E-mail2
83 E-mail3
84 E-mail list
85 E-mail display name
86 File as
87 First name
88 Full name
89 Gender
90 Given name
91 Hobbies
92 Home address
93 Home city
94 Home country/region
95 Home P.O. box
96 Home postal code
97 Home state or province
98 Home street
99 Home fax
100 Home phone
101 IM addresses
102 Initials
103 Job title
104 Label
105 Last name
106 Mailing address
107 Middle name
108 Cell phone
109 Nickname
110 Office location
111 Other address
112 Other city
113 Other country/region
114 Other P.O. box
115 Other postal code
116 Other state or province
117 Other street
118 Pager
119 Personal title
120 City
121 Country/region
122 P.O. box
123 Postal code
124 State or province
125 Street
126 Primary e-mail
127 Primary phone
128 Profession
129 Spouse/Partner
130 Suffix
131 TTY/TTD phone
132 Telex
133 Webpage
134 Content status
135 Content type
136 Date acquired
137 Date archived
138 Date completed
139 Device category
140 Connected
141 Discovery method
142 Friendly name
143 Local computer
144 Manufacturer
145 Model
146 Paired
147 Classification
148 Status
149 Status
150 Client ID
151 Contributors
152 Content created
153 Last printed
154 Date last saved
155 Division
156 Document ID
157 Pages
158 Slides
159 Total editing time
160 Word count
161 Due date
162 End date
163 File count
164 File extension
165 Filename
166 File version
167 Flag color
168 Flag status
169 Space free
172 Group
173 Sharing type
174 Bit depth
175 Horizontal resolution
176 Width
177 Vertical resolution
178 Height
179 Importance
180 Is attachment
181 Is deleted
182 Encryption status
183 Has flag
184 Is completed
185 Incomplete
186 Read status
187 Shared
188 Creators
189 Date
190 Folder name
191 Folder path
192 Folder
193 Participants
194 Path
195 By location
196 Type
197 Contact names
198 Entry type
199 Language
200 Date visited
201 Description
202 Link status
203 Link target
204 URL
208 Media created
209 Date released
210 Encoded by
211 Episode number
212 Producers
213 Publisher
214 Season number
215 Subtitle
216 User web URL
217 Writers
219 Attachments
220 Bcc addresses
221 Bcc
222 Cc addresses
223 Cc
224 Conversation ID
225 Date received
226 Date sent
227 From addresses
228 From
229 Has attachments
230 Sender address
231 Sender name
232 Store
233 To addresses
234 To do title
235 To
236 Mileage
237 Album artist
238 Sort album artist
239 Album ID
240 Sort album
241 Sort contributing artists
242 Beats-per-minute
243 Composers
244 Sort composer
245 Disc
246 Initial key
247 Part of a compilation
248 Mood
249 Part of set
250 Period
251 Color
252 Parental rating
253 Parental rating reason
254 Space used
255 EXIF version
256 Event
257 Exposure bias
258 Exposure program
259 Exposure time
260 F-stop
261 Flash mode
262 Focal length
263 35mm focal length
264 ISO speed
265 Lens maker
266 Lens model
267 Light source
268 Max aperture
269 Metering mode
270 Orientation
271 People
272 Program mode
273 Saturation
274 Subject distance
275 White balance
276 Priority
277 Project
278 Channel number
279 Episode name
280 Closed captioning
281 Rerun
282 SAP
283 Broadcast date
284 Program description
285 Recording time
286 Station call sign
287 Station name
288 Summary
289 Snippets
290 Auto summary
291 Relevance
292 File ownership
293 Sensitivity
294 Shared with
295 Sharing status
297 Product name
298 Product version
299 Support link
300 Source
301 Start date
302 Sharing
303 Availability status
304 Status
305 Billing information
306 Complete
307 Task owner
308 Sort title
309 Total file size
310 Legal trademarks
311 Video compression
312 Directors
313 Data rate
314 Frame height
315 Frame rate
316 Frame width
317 Spherical
318 Stereo
319 Video orientation
320 Total bitrate
Run Vbscript action:
Dim oAppShell, oFolder, output,i
Set objFso = CreateObject("Scripting.FileSystemObject")
Set oAppShell = CreateObject("Shell.Application")
varFolderPath = "%FolderPath%"
Set oFolder = oAppShell.Namespace(varFolderPath)
For Each oItem In oFolder.Items
For i = 0 To 320
output = output & oFolder.GetDetailsOf(, i) & " - " & oFolder.GetDetailsOf(oItem, i) & vbNewLine
Next
output = output & "------------------------------" & vbNewLine
Next
WScript.Echo output
@VJR This was excatly what I was looking for and it works fine! Thank you SO much for this!
Two more questions:
Is there also a way to get not a whole folder but just a specific file inside the folder?
And how can I choose which exact metadata properties I want? For example if I want just 1 and 72.. how I'm gonna do that? Sorry, I've never done anything in VBScript, dont know what to do with the "If" Condition. Thanks!
For individual image file and specific records copy paste the below code into a blank Flow editor.
Change the file path in the Set variable (first line).
Run the Flow to see the output.
SET FullFilePath TO $'''D:\\Test\\P1000231.JPG'''
File.GetPathPart File: FullFilePath Directory=> Directory FileName=> FileName
Scripting.RunVBScript VBScriptCode: $'''Dim oAppShell, oFolder, output,i
Set objFso = CreateObject(\"Scripting.FileSystemObject\")
Set oAppShell = CreateObject(\"Shell.Application\")
varFolderPath = \"%Directory%\"
Set oFolder = oAppShell.Namespace(varFolderPath)
File = \"%FileName%\"
output = oFolder.GetDetailsOf(oFolder.items.Item(File),0) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),1) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),30) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),32)
WScript.Echo output''' ScriptOutput=> VBScriptOutput
Text.SplitText.SplitWithDelimiter Text: VBScriptOutput CustomDelimiter: $'''|''' IsRegEx: False Result=> TextList
Display.ShowMessageDialog.ShowMessage Message: $'''The camera model is: %TextList[2]%''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
The yellow highlighted are the ones where you give the numbers.
Example of 4 different numbers. Add the ones you need and remove others.
Note that the pipe | symbol is not appended to the last one in line no. 14. (use of pipe explained below)
The idea is to produce a text output variable separated by a pipe | delimiter.
And then split using the delimiter. This will give a List variable for each of those numbers
Access the individual elements using the notation for instance as %TextList[2]%
(You can even create a customised vbscript function where you just pass the image path and only a single number from PAD and it will return the value of that number. This function can then be called again and again for different numbers in each call.)
@VJR This works just perfect. Excatly what I wanted. Thank you so much for this, I'm really thankful. 😊
Btw: How I'm gonna select now just specific data like:
File = \"%FileName%\" output = oFolder.GetDetailsOf(oFolder.items.Item(File),0) & \"|\" output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),1) & \"|\" output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),30) & \"|\" output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),32)
in the first script that pulls data for EVERY file in the folder? I tried to merge these scripts together so that it will pull just specific metadata out ot every file in the folder but I can't get this to work. As I said, I have really no idea of VBscript. I would be so glad if you can help out, one more time. Thanks
You wanted for specific file so I had shared that.
In the first script, remove as below, keep all else as it is.
For Each oItem In oFolder.Items
For i = 0 To 320output = output & oFolder.GetDetailsOf(, i) & " - " & oFolder.GetDetailsOf(oItem, i) & vbNewLine
output = oFolder.GetDetailsOf(oFolder.items.Item(File),0) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),1) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),30) & \"|\"
output = output & oFolder.GetDetailsOf(oFolder.items.Item(File),32)
Next
output = output & "------------------------------" & vbNewLine
Next
I am directly making the code changes here, so haven't tested it.
Yes, I wanted it for specific file, that was absolutely right. Just wondered how it would look like for the whole folder. You've done an amazing job, thank you for this.
Hi folks,
I experience something strange. This is my code:
Dim oAppShell, oFolder, output,i
Set objFso = CreateObject("Scripting.FileSystemObject")
Set oAppShell = CreateObject("Shell.Application")
varFolderPath = "%Directory%"
Set oFolder = oAppShell.Namespace(varFolderPath)
File = "%FileName%"
one = oFolder.GetDetailsOf(oFolder.items.Item(File),0) & "|"
two = oFolder.GetDetailsOf(oFolder.items.Item(File),1) & "|"
three = oFolder.GetDetailsOf(oFolder.items.Item(File),12) & "|"
four = oFolder.GetDetailsOf(oFolder.items.Item(File),4)
if three = "" then three = %dummy%
output= one & two & three & four & vbNewLine
WScript.Echo output
and this is my VBScriptOutput:
So far all looks fine, but when checking carefully this part:
20.<u+200e>12.<u+200e>2020 <u+200f><u+200e>11:07 (which is the date take of a photo, the length of this part is 20 char, but 16 are only visible! Try it, place the cursor to the left and move one by one and count. There is something invisible inside, which I cannot identify. Any idea or even a solution how to get rid of this?
nbsp;.<u+200e>2020 <u
I experience this only with the 'date taken' value, not with the creation date:
23.01.2022 16:51
Many thanks!
Thank you for this VJR. This is exactly what I'm looking for right now. Great Job! 😊
To ensure that we are providing the best possible experience for Community members, we want to hear from you! We value your feedback! As part of our commitment to enhancing your experience, we invite you to participate in a brief 15-question survey. Your insights will help us improve our services and better serve the community. 👉Community User Survey Thank you for being an essential part of our community! Power Platform Engagement Team
It's time for another Tuesday Tip, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community. This Week: All About Community Support Whether you're a seasoned community veteran or just getting started, you may need a bit of help from time to time! If you need to share feedback with the Community Engagement team about the community or are looking for ways we can assist you with user groups, events, or something else, Community Support is the place to start. Community Support is part of every one of our communities, accessible to all our community members. Within each community's Community Support page, you'll find three distinct areas, each with a different focus to help you when you need support from us most. Power Apps: https://powerusers.microsoft.com/t5/Community-Support/ct-p/pa_community_support Power Automate: https://powerusers.microsoft.com/t5/Community-Support/ct-p/mpa_community_support Power Pages: https://powerusers.microsoft.com/t5/Community-Support/ct-p/mpp_community_support Copilot Studio: https://powerusers.microsoft.com/t5/Community-Support/ct-p/pva_community-support Community Support Form If you need more assistance, you can reach out to the Community Team via the Community support form. Choose the type of support you require and fill in the form accordingly. We will respond to you promptly. Thank you for being an active part of our community. Your contributions make a difference! Best Regards, The Community Management Team
As we continue to grow and learn together, it's important to reflect on the valuable insights we've shared. For today's #TuesdayTip, we're excited to take a moment to look back at the last 10 tips we've shared in case you missed any or want to revisit them. Thanks for your incredible support for this series--we're so glad it was able to help so many of you navigate your community experience! Getting Started in the Community An overview of everything you need to know about navigating the community on one page! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Community Ranks and YOU Have you ever wondered how your fellow community members ascend the ranks within our community? We explain everything about ranks and how to achieve points so you can climb up in the rankings! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Powering Up Your Community Profile Your Community User Profile is how the Community knows you--so it's essential that it works the way you need it to! From changing your username to updating contact information, this Knowledge Base Article is your best resource for powering up your profile. Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Community Blogs--A Great Place to Start There's so much you'll discover in the Community Blogs, and we hope you'll check them out today! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Unlocking Community Achievements and Earning Badges Across the Communities, you'll see badges on users profile that recognize and reward their engagement and contributions. Check out some details on Community badges--and find out more in the detailed link at the end of the article! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Blogging in the Community Interested in blogging? Everything you need to know on writing blogs in our four communities! Get started blogging across the Power Platform communities today! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Subscriptions & Notifications We don't want you to miss a thing in the community! Read all about how to subscribe to sections of our forums and how to setup your notifications! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Getting Started with Private Messages & Macros Do you want to enhance your communication in the Community and streamline your interactions? One of the best ways to do this is to ensure you are using Private Messaging--and the ever-handy macros that are available to you as a Community member! Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Community User Groups Learn everything about being part of, starting, or leading a User Group in the Power Platform Community. Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Update Your Community Profile Today! Keep your community profile up to date which is essential for staying connected and engaged with the community. Community Links: ○ Power Apps ○ Power Automate ○ Power Pages ○ Copilot Studio Thank you for being an integral part of our journey. Here's to many more Tuesday Tips as we pave the way for a brighter, more connected future! As always, watch the News & Announcements for the next set of tips, coming soon!
This month's Community Ambassador call is on May 9th at 9a & 3p PDT. Please keep an eye out in your private messages and Teams channels for your invitation. There are lots of exciting updates coming to the Community, and we have some exclusive opportunities to share with you! As always, we'll also review regular updates for User Groups, Super Users, and share general information about what's going on in the Community. Be sure to register & we hope to see all of you there!
We're pleased to share the April Community Newsletter, where we highlight the latest news, product releases, upcoming events, and the amazing work of our outstanding Community members. If you're new to the Community, please make sure to follow the latest News & Announcements and check out the Community on LinkedIn as well! It's the best way to stay up-to-date with all the news from across Microsoft Power Platform and beyond. COMMUNITY HIGHLIGHTS Check out the most active community members of the last month! These hardworking members are posting regularly, answering questions, kudos, and providing top solutions in their communities. We are so thankful for each of you--keep up the great work! If you hope to see your name here next month, follow these awesome community members to see what they do! Power AppsPower AutomateCopilot StudioPower PagesWarrenBelzDeenujialexander2523ragavanrajanLaurensMManishSolankiMattJimisonLucas001AmikcapuanodanilostephenrobertOliverRodriguestimlAndrewJManikandanSFubarmmbr1606VishnuReddy1997theMacResolutionsVishalJhaveriVictorIvanidzejsrandhawahagrua33ikExpiscornovusFGuerrero1PowerAddictgulshankhuranaANBExpiscornovusprathyooSpongYeNived_Nambiardeeksha15795apangelesGochixgrantjenkinsvasu24Mfon LATEST NEWS Business Applications Launch Event - On Demand In case you missed the Business Applications Launch Event, you can now catch up on all the announcements and watch the entire event on-demand inside Charles Lamanna's latest cloud blog. This is your one stop shop for all the latest Copilot features across Power Platform and #Dynamics365, including first-hand looks at how companies such as Lenovo, Sonepar, Ford Motor Company, Omnicom and more are using these new capabilities in transformative ways. Click the image below to watch today! Power Platform Community Conference 2024 is here! It's time to look forward to the next installment of the Power Platform Community Conference, which takes place this year on 18-20th September 2024 at the MGM Grand in Las Vegas! Come and be inspired by Microsoft senior thought leaders and the engineers behind the #PowerPlatform, with Charles Lamanna, Sangya Singh, Ryan Cunningham, Kim Manis, Nirav Shah, Omar Aftab and Leon Welicki already confirmed to speak. You'll also be able to learn from industry experts and Microsoft MVPs who are dedicated to bridging the gap between humanity and technology. These include the likes of Lisa Crosbie, Victor Dantas, Kristine Kolodziejski, David Yack, Daniel Christian, Miguel Félix, and Mats Necker, with many more to be announced over the coming weeks. Click here to watch our brand-new sizzle reel for #PPCC24 or click the image below to find out more about registration. See you in Vegas! Power Up Program Announces New Video-Based Learning Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram. These include a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the image below to find out more! UPCOMING EVENTS Microsoft Build - Seattle and Online - 21-23rd May 2024 Taking place on 21-23rd May 2024 both online and in Seattle, this is the perfect event to learn more about low code development, creating copilots, cloud platforms, and so much more to help you unleash the power of AI. There's a serious wealth of talent speaking across the three days, including the likes of Satya Nadella, Amanda K. Silver, Scott Guthrie, Sarah Bird, Charles Lamanna, Miti J., Kevin Scott, Asha Sharma, Rajesh Jha, Arun Ulag, Clay Wesener, and many more. And don't worry if you can't make it to Seattle, the event will be online and totally free to join. Click the image below to register for #MSBuild today! European Collab Summit - Germany - 14-16th May 2024 The clock is counting down to the amazing European Collaboration Summit, which takes place in Germany May 14-16, 2024. #CollabSummit2024 is designed to provide cutting-edge insights and best practices into Power Platform, Microsoft 365, Teams, Viva, and so much more. There's a whole host of experts speakers across the three-day event, including the likes of Vesa Juvonen, Laurie Pottmeyer, Dan Holme, Mark Kashman, Dona Sarkar, Gavin Barron, Emily Mancini, Martina Grom, Ahmad Najjar, Liz Sundet, Nikki Chapple, Sara Fennah, Seb Matthews, Tobias Martin, Zoe Wilson, Fabian Williams, and many more. Click the image below to find out more about #ECS2024 and register today! Microsoft 365 & Power Platform Conference - Seattle - 3-7th June If you're looking to turbo boost your Power Platform skills this year, why not take a look at everything TechCon365 has to offer at the Seattle Convention Center on June 3-7, 2024. This amazing 3-day conference (with 2 optional days of workshops) offers over 130 sessions across multiple tracks, alongside 25 workshops presented by Power Platform, Microsoft 365, Microsoft Teams, Viva, Azure, Copilot and AI experts. There's a great array of speakers, including the likes of Nirav Shah, Naomi Moneypenny, Jason Himmelstein, Heather Cook, Karuana Gatimu, Mark Kashman, Michelle Gilbert, Taiki Y., Kristi K., Nate Chamberlain, Julie Koesmarno, Daniel Glenn, Sarah Haase, Marc Windle, Amit Vasu, Joanne C Klein, Agnes Molnar, and many more. Click the image below for more #Techcon365 intel and register today! For more events, click the image below to visit the Microsoft Community Days website.
It's time for another TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community. We're excited to announce that updating your community profile has never been easier! Keeping your profile up to date is essential for staying connected and engaged with the community. Check out the following Support Articles with these topics: Accessing Your Community ProfileRetrieving Your Profile URLUpdating Your Community Profile Time ZoneChanging Your Community Profile Picture (Avatar)Setting Your Date Display Preferences Click on your community link for more information: Power Apps, Power Automate, Power Pages, Copilot Studio Thank you for being an active part of our community. Your contributions make a difference! Best Regards, The Community Management Team
User | Count |
---|---|
46 | |
24 | |
14 | |
6 | |
6 |
User | Count |
---|---|
90 | |
42 | |
25 | |
14 | |
12 |