OK, I see what you are saying. You only have it extant under one category. It was this very dilemma that prompted me to start down this path. It will definitely be more difficult than in Linux. Once again, Take Command may help. Cmd.exe is really awful. Linux does not, either. Hypothetically it could be possible for an OS to keep track of symlinks, but it's probably not practical. That means the app has to do it, or else the user. In the files I posted, the `Verify` routine is run manually to add a title to the list of verified movies (which means basically it has been edited to suit my tastes and has been pushed to a TiVo to make sure it transfers without error.) In addition to adding it to the verified list of movies, it also asks the user to classify the video by genre. All of this could fairly easily be automated to pull the info from the metafile, should one choose to do so, and it could be run once an hour, say. The Windows scheduler is quite pathetic, but it is sufficient for this task. I have set up the `Verify` routine so the user does not have to enter the entire video name. Any part of it is sufficient to bring up a list of all videos whose names contain the string. Thus, for the video "Raiders of the Lost Ark (Recoded Sun Jan 07, 2004, HBOHD)" one need only enter the string "raid" or "ark". Of course, using as common a string as "ark" may bring up more than one video name. On my server, it brings up 14 different names. The user simply enters the number of the video in question from the list. Note coding this was very easy using the Linux command `find`. It will be more difficult under cmd.exe. Take Command may have a suitable function, I don't know. Once the user has selected the video, the `Verify` routine cleans up all the temporary files that went into creating the video, and then it checks to see if the video is already listed as being verified. If not, it renames the video to eliminate leading articles ( "The" or "A" ) by calling the routine `Rename`. Once this is all done, the `Verify` script calls the routine `Vlinks`, which creates all the links based upon the users selections. Again, a list of 25 genres is displayed for the user, and the user selects which ones apply. As I mentioned, this could be easily automated to pull the info from the metafile, requiring no user input at all. My biggest issue with this - and the reason I do not do it - is the genre data may be missing or IMO incorrect in the metafile. That, and the genre info in the metafiles encompasses more genre specifications than I care to consider. At the very end of the `Verify` script, I also run the `GroupAlpha` routine, which creates a symlink to every video from a directory whose name name is equal to the first letter of the name of video (or "0-9" if the first character is a number). This share allows me to find a video by name in the NPL or vidmgr very quickly, despite having literally thousands of videos on the server. I also run the `GroupAlpha` routine under cron twice an hour. If the user moves the file, the `Verify` routine will need to be run again. (Or if the user is not concerned about the verification aspect, one could simply run `Vlinks` directly on the fully qualified file name.) With little trouble, this could also be easily automated to run every hour or so if the `Vlinks` routine were modified to pull the info from the metadata. Obviously, none of this takes care of any broken links caused by moving or deleting the file. To handle this, I have the routine `AuditDatabase`, which also runs twice an hour. It first checks for broken links, removing any it finds. Then it updates the database of movies with any links it finds that do not have any corresponding genre entry in the database (this functionality could be removed if the system obtains the genres from the metafiles). Finally, it creates any links that are missing according to the database. I also manage the video system using the script `VideoScribe`. This typically runs automatically twice an hour, although I frequently run it manually. Among other things, it creates links for all videos that have not yet been verified in a share labeled "Unverified". That way I can easily tell which videos have not been verified, and when I select them to push to one of the TiVos, they are all collected in a single folder named "Unverified". It also calls the script `DateGroup`, which creates links to every video based upon its recording date (not the file create or modify time) in reverse order - newest first. This share allows me to quickly choose from among the videos which have been most recently recorded.