Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

86 lines
2.1 KiB

@rem = '--*-Perl-*--';
@rem = '
@if "%overbose%" == "" echo off
set ARGS= %*
call "%~dp0%PROCESSOR_ARCHITECTURE%\perl%OPERLOPT%" -w %~dpnx0 %ARGS:/?=-?%& goto :eof
';
# xmlvar.bat
# Owner: JBelt
# Last updated: 5/29/01
$program = "xmlvar";
if ($#ARGV >= 0)
{
if ($ARGV[0] =~ /[\/-][hH\?]/)
{
print <<USAGE;
-----------------------------------------------------------------------
usage: $program [-v] [name=value]...
All instances of &name; (for any name in the list) in the input stream
are replaced by the corresponding values. Use double quotes to handle
spaces. Curly brackets around values (like GUIDs) are removed.
Ignores a set of reserved words (quot, gt, amp... etc)
-v verbose mode
ex: $program "myName=Big fish" LCID=1033 < input.xml > output.xml
input.xml: <item filename='&myName;.lnk' language="&LCID;"/>
output.xml: <item filename='Big fish.lnk' language="1033"/>
-----------------------------------------------------------------------
USAGE
exit;
}
}
# reserved variables
@Reserved = ('quot', 'gt', 'amp', 'lt', 'apos');
foreach (@Reserved) { $Variables{$_} = "&$_;"; }
foreach (@ARGV)
{
if ($_ =~ /-v/i)
{
$fVerbose = 1;
print "Name: Value\n";
}
else
{
die "$program: invalid argument: $_\n" unless ($name, $value) = /^(.*)=(.*)$/;
# can't redefine variables (including reserved words)
myDie("$name is already defined") if defined $Variables{$name};
# strip surrounding curly braces
$value =~ s/^{(.*)}$/$1/;
$Variables{$name} = $value;
print "$name: $value\n" if defined $fVerbose;
}
}
# foreach (keys %Variables) { print "$_ = $Variables{$_}\n"; }
while (<STDIN>)
{
s/&(\w+);/&myReplace($1)/ge;
print;
}
sub myReplace()
{
myDie("invalid argument list to myReplace") unless ($var) = @_;
return $Variables{$var} if defined $Variables{$var};
warn "$program: warning: $var neither defined nor reserved\n";
return "&$var;";
}
sub myDie()
{
print STDERR "$program: ";
print STDERR @_;
print STDERR "\n";
exit 1;
}