Is there a way to copy tag(s) from one file to the rest of the files in the folder, systematically?

I have albums separated into folders, but in a lot of folders only the first track has tags like "artist" or "composer". I would like all files in each album folder to have all the same tags. However, I have a lot of folders where this is the case, and it would take quite a while to go through and do this process manually. Is there a systematic way to either

  1. (preferably) combine all the tags from all files in a folder onto all other files in a folder, or
  2. apply the tags from one file (for example, the first) to all others in the same folder?

I know that mp3tag has the ability to apply an existing tag from one file onto all other selected files through the tag panel on the left. I also know that I could use regular expressions for part of this, but all of the solutions I can think of involve comparing every single file to all other files every time, which would take way too long for the amount of folders I have.

Any help would be appreciated. Thank you.

MP3tag only looks at the current file and sees only data that is available for that file.
So, unless you have some means to save the data that you want to distribute in an external place, e.g. the path or filename or a text file, it will not be possible.

So: does the path contain the artist name? then use Converter>Filename-Tag and create a mask with %artist% and %dummy%.
If you need other data, it may be worthwhile to rename the folder temporarily to use it as data storage.

MP3tag only looks at the current file and sees only data that is available for that file.

I don't understand what you mean by this.

And the folders are named after the albums they contain, and all the files have appropriate album tags of the same name. I did that with mp3tag.

it may be worthwhile to rename the folder temporarily to use it as data storage.

This is a good idea that I didn't think of. But if I need to, I would like to do it in a reversible way. So I guess something like appending the artist tags from the files with tags to their parents folders with a temporary unique character that I can then use in regex to delete later? Or did you have a better way in mind?

This means that there is no comparison possible between 2 files like "Oh, these have the same data in ALBUM, so I copy the artist to the empty field".

I don't know if this is "better" - there are so many ways ...
You could create a user-defined field that holds the orgiinal folder name and then, after yu have finished, use an action of the type "Format value" for _DIRECTORY and rename the folder.
Or you could unify the folder names with e.g. %album% - %year% so that you do not have to bother what it looked like before.
Yes, and of course, you could manipulate the folder name with a regular expression.

This is a solution if at least one track has the correct info;

  1. Highlight all tracks that you want to edit.
  2. In the Tag Panel you can click on each field. A drop-down will show a list of the current values, change where it says To the one you want.
  3. Repeat this for each field you want to update.
  4. Make sure you save when you have finished with all fields.

This is a bit tedious if you are working on a lot of different albums though.
@Voxtopass do your file names contain the complete song TITLE information?

It depends on what you mean by "complete". The file names are the correct names of each track that I want. They contain no artist, album, or other information. But I have many albums that are not traditional "albums" and so they have names like "Track 1, Track 2, etc." or things like that.

If you're asking if the filenames contain the information also contained in the "title" tag, then I could easily change them to be that way with mp3tag, if a solution required it.

Okay so here's my current understanding:
I can't just rename all of the folders to just %artist% because I have multiple albums/folders that have the same artist, and because some albums have songs from different artists. So I need to rename the folders by appending the artists' names and a unique character, using _DIRECTORY, then use the unique character to mark the end of the desired info to be placed in the artist tag after. Since the folders are all named after the album anyways, I can then restore the folder names by renaming all folders using %album%.

Am I missing an easy way to take only what I want to place in the artist tag without having to use a special character and regex?

The bits of information should be separable form each other.
A unique character eases the way.

Filename and Directory structure are often helpful when trying to up date batches of files that have missing details, such as your examples.

A common Directory structure looks something like;
…\%AlbumArtist%\%Album%\%DiscNumber%-%Track% %Title%
(The preceding three dots could be the root drive letter and and other directory names, like Music or My Audio, etc)

If some files are missing this metadata, they cannot be moved to this structure. And on the other hand, if this same info isn’t in the Directory path, the path doesn’t help to build the metadata up.

As I mentioned earlier, the only other way is to work album by album, and use the common elements in the tag panel drop-down lists to quickly choose the ones to use for all tracks for that album.

You didn’t mention yet how many files or at least albums you are working with. But even if it is several hundred, the album by album approach can ensure you aren’t missing sensitive intentional differences that are ignored when you use a brute force Action approach. Also, once all of your files have been updated this way, you can then easily change your entire directory structure to what I show above if desired.