Okay, so the -f is just for cases where you rerun the same conversion twice (hopefully won't need that very often).
I'm trying it right now...
ActivePerl installs into a folder that it creates, and then it adds the path of that folder to PATH. I put the three programs into System32.
However, it is looking like PATH doesn't work for the script, so you have to specify the absolute path if your command window is not run in the folder of the script. And, in fact, the easiest way to convert a single folder is to use "Run Command Window Here", and then specify the absolute path of the script.
But going back to glynor's original concept - converting all the legacy shn file sets as a one time operation - it looks like we will want a batch file that traverses sub-folders and looks for .shn files and .txt files...
Perl won't know where the script is, and perl won't search your path for it, so you have to specify it. ActivePerl can be invoked by calling a script directly, but I think that requires a simple registry change. Then, just placing the script in the path makes it executable just like any program. Cygwin won't have this problem, since you can make the script directly executable.
Regarding converting an entire folder tree, I'd use the *nix
find tool to do the recursion - it's a one-liner.
find samples -name "*.txt" -type f -exec parse-etree.pl -cf '{}' \;
This is where *nix tools shine (so the advantage goes to Cygwin here). (Actually, I did all the development on Mac OS X, and the same script just runs on the various platforms).
The difficulty with the above is that your info files are not a) well named, b) don't all end with .txt, and c) there may be multiple possible info files, so you'll have to know ahead of time how to specify the collection of info files so that find will find them.