Windows NT 4.0 source code leak
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.

68 lines
2.0 KiB

4 years ago
  1. @echo off
  2. setlocal ENABLEEXTENSIONS
  3. if "%1" == "_DOPROJECT" goto doproject
  4. if "%1" == "_DOWAIT" goto dowait
  5. cd /d %_NTDRIVE%\nt
  6. set _NTSTATCMD1=
  7. erase ntstat.log
  8. erase ntstatsr.cmd
  9. if NOT "%1" == "_Y" goto notlocal
  10. erase ntstatsr1.cmd
  11. set _NTSTATCMD1=\nt\ntstat1sr.cmd
  12. :notlocal
  13. echo Launching separate STATUS command for each project
  14. echo Use 'CMDEVENT TerminateSLM' to abort the run.
  15. start /B /MIN cmdevent -w TerminateSLM
  16. start /B /MIN cmd /c %0 _DOWAIT %1
  17. sleep 5
  18. for %%i in (%NTPROJECTS%) do start "MP:%%i" /MIN cmd /c %0 _DOPROJECT %%i
  19. cmdevent -a MPNTSTAT TerminateSLM
  20. if ERRORLEVEL 2 goto slmstopped
  21. echo Collecting output files
  22. for %%i in (%NTPROJECTS%) do call :collectproject %%i
  23. if NOT "%_NTSTATCMD1%" == "" (
  24. cd \nt
  25. erase ntstatsr1.tmp 2>nul
  26. ren ntstatsr1.cmd ntstatsr1.tmp
  27. qgrep -v -y -L -f \nt\public\tools\ntclnsr1.txt \nt\ntstatsr1.tmp >\nt\ntstatsr1.cmd
  28. )
  29. copy \nt\ntstat.log \nt\pickup.cmd
  30. if "%1" == "" pause
  31. qgrep -e "*update" -e "*conflict" -e "*verify" -e "*merge" \nt\pickup.cmd | more
  32. if EXIST \nt\private\timeit.dat timeit -f \nt\private\timeit.dat -k NTSTAT_ALL_PARALLEL%1 -t -d
  33. cmdevent TerminateSLM >nul 2>nul
  34. goto done
  35. :slmstopped
  36. echo SLM Aborted. Output files left as is.
  37. goto done
  38. :dowait
  39. if EXIST \nt\private\timeit.dat timeit -f \nt\private\timeit.dat -k NTSTAT_ALL_PARALLEL%2 cmdevent -w -v %NTPROJECTS%
  40. if NOT EXIST \nt\private\timeit.dat cmdevent -w -v %NTPROJECTS%
  41. @echo off
  42. cmdevent MPNTSTAT >nul 2>nul
  43. goto done
  44. :collectproject
  45. if EXIST \nt\%1.log (
  46. type \nt\%1.log >>\nt\ntstat.log
  47. erase \nt\%1.log
  48. )
  49. if EXIST \nt\%1sr.cmd (
  50. type \nt\%1sr.cmd >>\nt\ntstatsr.cmd
  51. erase \nt\%1sr.cmd
  52. )
  53. if EXIST \nt\%1sr1.cmd (
  54. type \nt\%1sr1.cmd >>\nt\ntstatsr1.cmd
  55. erase \nt\%1sr1.cmd
  56. )
  57. goto :EOF
  58. :doproject
  59. set _NTSTATLOG=\nt\%2.log
  60. set _NTSTATCMD=\nt\%2sr.cmd
  61. if NOT "%_NTSTATCMD1%" == "" set _NTSTATCMD1=\nt\%2sr1.cmd
  62. erase %_NTSTATLOG% 2>nul
  63. erase %_NTSTATCMD% 2>nul
  64. if NOT "%_NTSTATCMD1%" == "" erase %_NTSTATCMD1% 2>nul
  65. call ntslmop.cmd status %2
  66. cmdevent %2
  67. :done
  68. endlocal