No one can really help you unless you show us what is actually in your .CMD file. This is really just a DOS .BAT file so can contain any valid dos shell syntax. It is not immediately apparent why you should need to do this. More details please.
my $file = 'c:/file.cmd';
open F, $file or die "Can't read $file, perl says $!\n";
while(my $line = <F>){
# parse the line to get data
}
close F;
| [reply] [d/l] |
What's a ".cmd" file? (Okay, it has variables, so it's probably like some sort of executable script. If so, what language does it use?) Are the variables that it contains like shell environment variables (similar to "PATH")? Do you have the ability/desire to edit the .cmd file if necessary so that it plays nicely with a perl script? (Whatever the .cmd file does, have you considered replacing it completely with a perl script?)
Have you tried any sort of perl script on your own yet? If so, why not post it as an update or reply to your node, with some clear information about what its inputs are, and what you intend it to do (and what it actually does, if it doesn't do what you want).
Sorry, I have no answers, just questions. Your post was a bit vague. | [reply] |
I'm assuming you mean Environment variables when you say "variables from this .cmd file".
If this is the case, you can try to get them thus:
open (CMDFILE,'cmdfile.cmd & SET |' ) or die "Cant run cmd";
while(<CMDFILE>){
print qq(EnvVar:$_)
## Look for the variables you want values for
};
Your perl program will obtain all STDOUT output produced by "cmdfile.cmd" , followed by all available environment variables. This output can now be parsed to get desired info.
Earth first! (We'll rob the other planets later)
| [reply] [d/l] |