Perl Code to Parse File Versions

In various automations,. systems engineers require to determine the version of file to perform a action based on the file version. Here is a excerpt code that checks for the version of a specified file.

CODE#1
[code language=”perl”]
#===============================================================================
# sub CheckFileVersion
#===============================================================================
sub CheckFileVersion {
if (-e "$File") {
my $cmd = "filever \"$File\"";
my $output = `$cmd`;
my @lines = split(/ /, $output);
my $ver = ($lines[7] eq ”) ? $lines[8] : $lines[7];
my @version = split(/\./, $ver);
my $filever = $version[0];
if ($filever) {
print "INFO: $File major version is $filever\n";
} else {
print "ERROR: Failed to retrieve major version of $File\n";
}
} else {
print "WARNING: Specified file doesn’t exist on this machine.\n";
}

}

[/code]

CODE#2
[code language=”perl”]
my $cmd = "filever.exe \"$FILE\"";
my $file_version = `$cmd 2>&1`;
if ($file_version =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/) {
$file_version = "$1.$2.$3.$4";
} else {
print "ERROR: Failed to determine $FILE version\n";
}
[/code]

Leave a Reply

Your email address will not be published. Required fields are marked *