72 lines
1.7 KiB
Batchfile
72 lines
1.7 KiB
Batchfile
|
@echo off
|
||
|
REM ------------------------------------------------------------------
|
||
|
REM
|
||
|
REM logmsg.cmd
|
||
|
REM Logs text messages to the screen and/or in a log file
|
||
|
REM
|
||
|
REM Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
REM
|
||
|
REM ------------------------------------------------------------------
|
||
|
perl -x "%~f0" %*
|
||
|
goto :EOF
|
||
|
#!perl
|
||
|
use strict;
|
||
|
use lib $ENV{RAZZLETOOLPATH};
|
||
|
use ParseArgs;
|
||
|
use Logmsg;
|
||
|
|
||
|
sub Usage { print<<USAGE; exit(1) }
|
||
|
Prints the given string to the screen and into a file.
|
||
|
Used by command scripts to log messages.
|
||
|
|
||
|
usage: logmsg.cmd < message | \@filename > [logfile]
|
||
|
|
||
|
/t If specified, the message is timestamped.
|
||
|
|
||
|
message Specifies the text to be logged, should
|
||
|
be quoted.
|
||
|
|
||
|
filename A filename preceeded by an at-sign (\@)
|
||
|
may be given instead of a message. The
|
||
|
contents will be appened into the log
|
||
|
if the given file exists.
|
||
|
|
||
|
logfile Specifies the name of the log file.
|
||
|
LOGFILE, if defined, is the default.
|
||
|
If this parameter is not specified and
|
||
|
LOGFILE is not defined, the message is
|
||
|
displayed on the screen only.
|
||
|
|
||
|
ex: call logmsg.cmd "This is the message to display."
|
||
|
call logmsg.cmd \@mylog.txt
|
||
|
|
||
|
USAGE
|
||
|
|
||
|
my ($message, $logfile, $timestamp);
|
||
|
|
||
|
parseargs('?' => \&Usage,
|
||
|
't' => \$timestamp,
|
||
|
\$message,
|
||
|
\$logfile);
|
||
|
|
||
|
if ($logfile) {
|
||
|
$ENV{LOGFILE} = $logfile;
|
||
|
}
|
||
|
|
||
|
$ENV{SCRIPT_NAME} ||= '????';
|
||
|
|
||
|
|
||
|
if ($message =~ /^\@(.*)/) {
|
||
|
if (-e $1) {
|
||
|
append_file($1);
|
||
|
}
|
||
|
else {
|
||
|
# do nothing if file to append does not exist
|
||
|
}
|
||
|
}
|
||
|
elsif ($timestamp) {
|
||
|
timemsg $message;
|
||
|
}
|
||
|
else {
|
||
|
logmsg $message;
|
||
|
}
|