I actually started out doing it as a batch file, but couldn't find ANY info on how to do a "Do Until" loop. There just seemed to be more information out there supporting the VB Script side. And you're absolutely correct, you do need a seperate file to read the tape ID's out of. I figured that would be less of a hassle than trying to set up some kind of array or something. As you can see in my example above, I've just put the media ID's into a text file called "OldTapeList.txt". I extract the media ID's by copying all the tape info for the tapes I wish to expire into an Excel spreadsheet (control-C will copy all the data out of your media listings) and then copy/cut just the media ID field out of the spreadsheet into my media list. Double-click the script, it'll open up a cmd prompt window for every tape listed, runs the expires in parallel, and are usually all finished in about 8 seconds or so.
The best part is NO INTERACTION once you get the media ID's fed in. The -force option is used with the bpexpdate command for just this reason.
Another thing of note, I copied this file and just changed the command it's running to a "bpmedia -unfreeze -m", and now I have an automatic unfreezing script, I just have to input my tape ID's to the same file I was using before......or make a second list file called "UnfreezeTapeList.txt" or something, change that line in the script, and you're ready to go.