@rem = ' |
@goto endofperl |
'; |
#+--------------------------------------------------------------------------- |
# |
# File: R U N W 3 2 . B A T |
# |
# Contents: Perl/cmd script to prevent fatal page fault when using Win9x |
# and running winnt32.exe from a network share. |
# |
# Author: kumarp 21-August-98 |
# |
# Notes: |
# Windows95 does not allow an executable on a network share to be copied |
# to pagefile before executing it, it simply runs it directly |
# from the network share. In case of a network problem, this results |
# in a fatal pagefault error. |
# |
# This script is written with the aim to avoid this problem when |
# running winnt32.exe from the ntbuilds release shares. It simply |
# copies all winnt32.exe files (~ 4MB) to a temporary directory on the |
# local hard drive. It does not copy the entire release share to your |
# hard drive. It then launches winnt32.exe from the local hard drive. |
# |
#---------------------------------------------------------------------------- |
|
my $usage_help = "Usage: runw32.bat [any option valid for winn32.exe]"; |
|
if ($ARGV[0] =~ /[-\/]([hH?]|(help))/i) |
{ |
print $usage_help; |
exit; |
} |
|
if (rindex($0, '\\') >= 0) |
{ |
$curdir = substr($0, 0, rindex($0, '\\')); |
} |
else |
{ |
$curdir = `cd`; |
} |
|
chomp($curdir); |
|
$tempDir = $ENV{"TEMP"}; |
$winnt32_src = $curdir; |
$winnt32_dst = "$tempDir\\winnt32"; |
print "Please wait while files are being copied from $winnt32_src to $winnt32_dst...\n"; |
`xcopy /q/s/d $winnt32_src\\*.* $winnt32_dst`; |
die "...error copying files from $winnt32_src: $!\n" if ($? != 0); |
|
$nt5_src=$curdir; |
if ($nt5_src =~ /(.+)winnt32$/i) |
{ |
$nt5_src = $1; |
} |
|
$cmdline = "$winnt32_dst\\winnt32.exe /s:$nt5_src " . join(" ", @ARGV); |
print "$cmdline\n"; |
`$cmdline`; |
#`rd /s/q $winnt32_dst`; |
#`deltree /y $winnt32_dst`; |
__END__ |
:endofperl |
@echo off |
|
set THISFILE=%0 |
if not exist %THISFILE% set THISFILE=%0.bat |
|
if "%TEMP%"=="" goto not_set_temp |
if "%TMP%"=="" goto not_set_temp |
set ARGS= |
:loop |
if .%1==. goto endloop |
set ARGS=%ARGS% %1 |
shift |
goto loop |
:endloop |
|
set WINNT32_DIR=%TEMP%\winnt32 |
if not exist %WINNT32_DIR% md %WINNT32_DIR% |
|
rem Need to find a good location for perl.exe |
|
set PERL=\\kumarp1\public\perl\perl.exe |
if not exist %PERL% set PERL=\\scratch\scratch\kumarp\perl\perl.exe |
if not exist %PERL% goto perl_not_found |
|
%PERL% %THISFILE% %ARGS% |
|
goto the_end |
|
:perl_not_found |
echo Cannot load %PERL% |
goto the_end |
|
:not_set_temp |
echo Environment variable TEMP or TMP is not set |
goto the_end |
|
:the_end |