103 lines
2.4 KiB
Batchfile
103 lines
2.4 KiB
Batchfile
|
@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
|