I Hate CMD Prompts! Metadata Removal Help

Started by BJ1200, March 21, 2012, 09:58:31 PM

Previous topic - Next topic

BJ1200

Could someone help me with this? I have been using the GUI which only allows processing of one folder at a time.

I would like to clean out all metadata from JPG images. There is a main folder that contains about 25 sub folders that hold the images. I would like it to create a log at the end with error and warning messages of the problem images.

My images are in a folder structure like this:
C>
    Pictures>
             Media Project>
                         Small Images
                         Under 180px
                         35kb to 500kb
                         Over 500kb

and so on.

Thanks.

BogdanH

Hi,

From "Command prompt" window, execute following command:
exiftool -r -all= -ext jpg "c:\Pictures\Media Project"

This can also be done inside GUI by using ExifTool direct:
-r -all= -ext jpg "c:\Pictures\Media Project"
In this case make sure, that NO file is selected! -just select any folder in Browse panel.

Above command will delete all metadata from jpg files in "Media Project" folders and it's subfolders.

Bogdan

BJ1200

#2
Hey Bogdan, thank you so much. I think it's running after using the GUI ExifTool Direct. But there is no file counter displaying (progress countdown). The only way I think it might be working is from viewing CPU usage in Task Manager. This is why I don't like CMD stuff - never know what's going on in the background.

FYI -  I know another Bogdan who's from Slovenia, small world huh (google Telargo)?

It should look like the below correct?


BJ1200

If I use the cmd way to remove metadata "-r -all= -ext jpg...."
would this be the same as having all these boxes checked like the below?
I noticed you have to list the file type (jpg) but I know that some of the images are PNG & GIF that accidentally got their extension renamed. I wonder if it will clean the metadata from those files too.


BogdanH

Hi,

About no counter: you might have noticed, that GUI counts down (so user can estimate how long it will take to finish) and to count down, total number of selected files is needed. However, if -r is used, none file must be selected... so counter starts with zero files -thus, no counter.
I've prepared some changes in this regard (see top GUI download thread) and I'm confident that counter issue will be solved as well.

Yes, menu option Remove metadata (if remove ALL metadata is checked) gives the same result. In this case, command is executed only on (all) selected files in current folder.
Btw, in ExifTool direct, you don't need to specify file type or you you can specify more than one type, i.e.:
-r -all= -ext jpg "c:\Pictures\Media Project" -only jpg files processed
-r -all= -ext jpg -ext png "c:\Pictures\Media Project" -jpg and png files are processed
-r -all= "c:\Pictures\Media Project" -all files are processed (because no extension is specified)

Bogdan

BJ1200

Hey B,

Thanks. However, it looks like JFIF and Adobe information doesn't get removed by either method. I just stumbled into this. Any suggestions? I tried both CMD and GUI - same result.


BJ1200

Thanks B,

It looks like I might have to do this folder by folder. The CMD method seems to struggle with folders over 15-16,000 files. Same issue with the GUI. It starts OK and runs for awhile but then "Not Responding" appears in the log window, CPU usage stops, and images are still uncleaned. I have no way to tell how far it made it so I end up starting over, and over, and over hoping to get through so it generates the final log.

Phil Harvey

Quote from: BJ1200 on March 23, 2012, 07:15:39 AM
it looks like JFIF and Adobe information doesn't get removed by either method. I just stumbled into this. Any suggestions? I tried both CMD and GUI - same result.

JFIF information should be removed with -all=.

The JPEG APP14 Adobe information isn't removed by default for the reason mentioned in the JPEG APP14 documentation.  However, you may add -adobe= or -adobe:all= to the command to force it to be deleted.

I don't know what the problem could be when processing a large number of files, unless it is a manifestation of the poor ActivePerl memory handling, which I suppose is possible.  Have you watched the memory usage while it is running?

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

BogdanH

Thank you for explaining, Phil.
I don't have any file with APP14 Adobe info and because it can't be created with ExifTool, I can hardly tryout (for GUI). So, the question:
-exiftool -all= -adobe:all= myPhoto.jpg
Can I assume, that above command deletes everything?

To BJ1200:
I only have few thousands of photos, so I can't test GUI's behaviour on tenth of thousands of photos (not to mention there are different PC configurations, various image file corruptions, etc.). Maybe you shoudn't process files from top folder. Top folder usually contains subfolders with images and if you have i.e. 10 of them, that would reduce number of files from 16000 to (average) 1600 per session.
Btw. in meantime, I have implemented counter for -r option in ExifTool direct and GUI update should be available in next 24 hours.

Bogdan

Phil Harvey

Quote from: BogdanH on March 23, 2012, 08:45:53 AM
-exiftool -all= -adobe:all= myPhoto.jpg
Can I assume, that above command deletes everything?

Currently, this is true.  I made the Adobe information a special case because: 1) it doesn't contain any personal metadata, and 2) it contains information which may affect the appearance of the image.

Here is an example JPEG image which changes appearance when the APP14 "Adobe" information is deleted.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

BogdanH

Hi Phil,
Thank you for example -which convinced me not to "automatically" delete APP14 in GUI  :)

Bogdan

BJ1200

Good PC question. This is a W7-64 using Intel I-7 chipset and 8GB memory. It's Dell's XPS fully loaded version. I did notice the memory creeps up very slowly from around 1.8 to 2.1..2.2 up to about 2.5 on the largest folder size (32,000 image files).

When using the GUI and you select a folder of large size, the GUI goes into "Not Responding" in the upper left for about 10 seconds, then the files appear and all is good.

I did run two instances of the GUI to process two different folders at the same time. This does work but also drags down other applications. For instances, opening Outlook takes 30-40 seconds when these two are running (usually 2-3 seconds). 

When using ExifTool Direct I was selecting the top folder. That was the problem, the app would freeze or stop somewhere on the 40 subfolders and no way to know where. I did try inserting "test" image in each folder to see if metadata was processed on that folder. But subfolders didn't seem to be processed in any type of order. After it would freeze or stop, the "test" image in subfolders that had clean metadata were not in alphabetical order or by folder size.

I gave up on CMD and did each folder manually using the GUI > Shift then Select 1st & last image > Modify > Remove > Remove All. This allowed me to review the log for each folder and decide what to do with that folder (serious issues or not). I hope this info helps. It's a great tool.

inte

Was just directed to exiftool and giving it a try to see if it will remove metadata. The line above seems like it will do the trick:

exiftool -r -all= -ext jpg "c:\Pictures\Media Project"

I'm using the Mac OS command-line interface. What's the equivalent of the above line in Mac OS?

Phil Harvey

The command is exactly the same in Mac OS, but the directory name will be different.  Usually something like ~/Pictures/...  (the "~" expands to the name of your home directory on the command line)

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).