Issue: DOS 6.22 PAUSE command does not accept message text as parameter. The syntax "PAUSE message..." is a Windows NT/2000+ feature that causes command-line parameters (%1, %2, etc.) to be consumed/lost in DOS 6.22. Root cause: User ran "T:\DEPLOY.BAT TS-4R" but script reported "Machine name not provided". The parameter %1 was being consumed by the invalid PAUSE syntax at line 31 before reaching GET_MACHINE_NAME. Changes: - Fixed 46 PAUSE commands across 9 BAT files - Converted "PAUSE message..." to "ECHO message..." + "PAUSE" - Updated check-dos-compatibility.ps1 to detect PAUSE with message - Created fix-pause-syntax.ps1 automated fix script Example fix: BEFORE (Windows NT+ syntax, causes parameter loss): PAUSE Press any key to continue... AFTER (DOS 6.22 compatible): ECHO Press any key to continue... PAUSE DOS 6.22 PAUSE command: - Syntax: PAUSE (no parameters) - Displays: "Press any key to continue..." - Cannot customize message (built-in text only) Files modified: - DEPLOY.BAT: 10 PAUSE commands fixed - UPDATE.BAT: 7 PAUSE commands fixed - CTONW.BAT: 8 PAUSE commands fixed - NWTOC.BAT: 6 PAUSE commands fixed - REBOOT.BAT: 4 PAUSE commands fixed - STAGE.BAT: 6 PAUSE commands fixed - CHECKUPD.BAT: 2 PAUSE commands fixed - DOSTEST.BAT: 2 PAUSE commands fixed - AUTOEXEC.BAT: 1 PAUSE command fixed Deployed to: - D2TESTNAS: /data/test/*.BAT (9,908 bytes for DEPLOY.BAT) Testing: Should now correctly receive command-line parameter: T:\DEPLOY.BAT TS-4R Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
171 lines
4.9 KiB
Batchfile
171 lines
4.9 KiB
Batchfile
@ECHO OFF
|
|
REM REBOOT.BAT - Manual system file update script
|
|
REM
|
|
REM NOTE: This file is normally AUTO-GENERATED by STAGE.BAT
|
|
REM This standalone version is for manual testing/recovery only
|
|
REM
|
|
REM Usage: REBOOT
|
|
REM
|
|
REM Applies staged system file updates:
|
|
REM C:\AUTOEXEC.NEW ??? C:\AUTOEXEC.BAT
|
|
REM C:\CONFIG.NEW ??? C:\CONFIG.SYS
|
|
REM
|
|
REM Version: 1.0 - DOS 6.22 compatible
|
|
REM Last modified: 2026-01-19
|
|
|
|
ECHO.
|
|
ECHO ==============================================================
|
|
ECHO Manual System File Update
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM Check if staged files exist
|
|
REM ==================================================================
|
|
|
|
SET HASAUTO=0
|
|
SET HASCONF=0
|
|
|
|
IF EXIST C:\AUTOEXEC.NEW SET HASAUTO=1
|
|
IF EXIST C:\CONFIG.NEW SET HASCONF=1
|
|
|
|
IF "%HASAUTO%"=="0" IF "%HASCONF%"=="0" GOTO NO_UPDATES
|
|
|
|
REM ==================================================================
|
|
REM Warn user
|
|
REM ==================================================================
|
|
|
|
ECHO [WARNING] This will replace your current system files:
|
|
ECHO.
|
|
IF "%HASAUTO%"=="1" ECHO C:\AUTOEXEC.BAT will be replaced by C:\AUTOEXEC.NEW
|
|
IF "%HASCONF%"=="1" ECHO C:\CONFIG.SYS will be replaced by C:\CONFIG.NEW
|
|
ECHO.
|
|
ECHO Backups will be saved as .SAV files.
|
|
ECHO.
|
|
ECHO Press Ctrl+C to cancel, or
|
|
ECHO Press any key to continue...
|
|
PAUSE
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM Backup current files
|
|
REM ==================================================================
|
|
|
|
ECHO Creating backups...
|
|
|
|
IF EXIST C:\AUTOEXEC.BAT COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
|
IF EXIST C:\AUTOEXEC.BAT IF NOT ERRORLEVEL 1 ECHO [OK] C:\AUTOEXEC.BAT ??? C:\AUTOEXEC.SAV
|
|
|
|
IF EXIST C:\CONFIG.SYS COPY C:\CONFIG.SYS C:\CONFIG.SAV >NUL
|
|
IF EXIST C:\CONFIG.SYS IF NOT ERRORLEVEL 1 ECHO [OK] C:\CONFIG.SYS ??? C:\CONFIG.SAV
|
|
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM Apply updates
|
|
REM ==================================================================
|
|
|
|
ECHO Applying updates...
|
|
|
|
REM Apply AUTOEXEC.NEW
|
|
IF "%HASAUTO%"=="1" COPY C:\AUTOEXEC.NEW C:\AUTOEXEC.BAT >NUL
|
|
IF "%HASAUTO%"=="1" IF NOT ERRORLEVEL 1 ECHO [OK] AUTOEXEC.BAT updated
|
|
IF "%HASAUTO%"=="1" IF ERRORLEVEL 1 ECHO [ERROR] AUTOEXEC.BAT update failed
|
|
IF "%HASAUTO%"=="1" IF ERRORLEVEL 1 GOTO UPDATE_ERROR
|
|
|
|
REM Apply CONFIG.NEW
|
|
IF "%HASCONF%"=="1" COPY C:\CONFIG.NEW C:\CONFIG.SYS >NUL
|
|
IF "%HASCONF%"=="1" IF NOT ERRORLEVEL 1 ECHO [OK] CONFIG.SYS updated
|
|
IF "%HASCONF%"=="1" IF ERRORLEVEL 1 ECHO [ERROR] CONFIG.SYS update failed
|
|
IF "%HASCONF%"=="1" IF ERRORLEVEL 1 GOTO UPDATE_ERROR
|
|
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM Clean up staging files
|
|
REM ==================================================================
|
|
|
|
ECHO Cleaning up staging files...
|
|
|
|
IF EXIST C:\AUTOEXEC.NEW DEL C:\AUTOEXEC.NEW
|
|
IF EXIST C:\CONFIG.NEW DEL C:\CONFIG.NEW
|
|
|
|
ECHO [OK] Staging files deleted
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM Success
|
|
REM ==================================================================
|
|
|
|
ECHO ==============================================================
|
|
ECHO System Files Updated Successfully
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
ECHO Updated files:
|
|
IF "%HASAUTO%"=="1" ECHO - C:\AUTOEXEC.BAT
|
|
IF "%HASCONF%"=="1" ECHO - C:\CONFIG.SYS
|
|
ECHO.
|
|
ECHO Backup files saved:
|
|
ECHO - C:\AUTOEXEC.SAV (previous AUTOEXEC.BAT)
|
|
ECHO - C:\CONFIG.SAV (previous CONFIG.SYS)
|
|
ECHO.
|
|
ECHO To activate changes:
|
|
ECHO Reboot the computer (Ctrl+Alt+Del)
|
|
ECHO.
|
|
ECHO To rollback changes:
|
|
ECHO COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
|
ECHO COPY C:\CONFIG.SAV C:\CONFIG.SYS
|
|
ECHO Then reboot
|
|
ECHO.
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
ECHO Press any key to continue...
|
|
PAUSE
|
|
GOTO END
|
|
|
|
REM ==================================================================
|
|
REM ERROR HANDLERS
|
|
REM ==================================================================
|
|
|
|
:NO_UPDATES
|
|
ECHO [WARNING] No staged update files found
|
|
ECHO.
|
|
ECHO Expected files:
|
|
ECHO C:\AUTOEXEC.NEW (not found)
|
|
ECHO C:\CONFIG.NEW (not found)
|
|
ECHO.
|
|
ECHO Run NWTOC to download updates from network, then:
|
|
ECHO CALL C:\BAT\STAGE.BAT
|
|
ECHO.
|
|
ECHO Press any key to exit...
|
|
PAUSE
|
|
GOTO END
|
|
|
|
:UPDATE_ERROR
|
|
ECHO.
|
|
ECHO [ERROR] Update failed
|
|
ECHO.
|
|
ECHO Your system may be in an inconsistent state.
|
|
ECHO.
|
|
ECHO Recovery steps:
|
|
ECHO 1. COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
|
ECHO 2. COPY C:\CONFIG.SAV C:\CONFIG.SYS
|
|
ECHO 3. Reboot (Ctrl+Alt+Del)
|
|
ECHO.
|
|
ECHO If system won't boot:
|
|
ECHO 1. Boot from DOS floppy
|
|
ECHO 2. Copy .SAV files back to .BAT and .SYS
|
|
ECHO 3. Remove floppy and reboot
|
|
ECHO.
|
|
ECHO Press any key to exit...
|
|
PAUSE
|
|
GOTO END
|
|
|
|
REM ==================================================================
|
|
REM CLEANUP AND EXIT
|
|
REM ==================================================================
|
|
|
|
:END
|
|
SET HASAUTO=
|
|
SET HASCONF=
|