@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