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>
203 lines
5.2 KiB
Batchfile
203 lines
5.2 KiB
Batchfile
@ECHO OFF
|
|
REM DOSTEST.BAT - Test DOS batch file deployment
|
|
REM Run this on the DOS machine after deploying new files
|
|
REM Version: 1.0
|
|
REM Last modified: 2026-01-19
|
|
|
|
ECHO.
|
|
ECHO ==============================================================
|
|
ECHO DOS 6.22 Configuration Test Script
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
|
|
REM ==================================================================
|
|
REM TEST 1: Check MACHINE variable
|
|
REM ==================================================================
|
|
|
|
ECHO [TEST 1] Checking MACHINE variable...
|
|
|
|
IF "%MACHINE%"=="" GOTO TEST1_FAIL
|
|
ECHO [OK] MACHINE=%MACHINE%
|
|
GOTO TEST2
|
|
|
|
:TEST1_FAIL
|
|
ECHO [FAIL] MACHINE variable not set
|
|
ECHO Fix: Add "SET MACHINE=TS-4R" to C:\AUTOEXEC.BAT
|
|
ECHO.
|
|
ECHO Press any key to continue testing...
|
|
PAUSE
|
|
GOTO TEST2
|
|
|
|
REM ==================================================================
|
|
REM TEST 2: Check required files exist
|
|
REM ==================================================================
|
|
|
|
:TEST2
|
|
ECHO.
|
|
ECHO [TEST 2] Checking required files...
|
|
|
|
IF NOT EXIST C:\AUTOEXEC.BAT ECHO [FAIL] C:\AUTOEXEC.BAT missing
|
|
IF EXIST C:\AUTOEXEC.BAT ECHO [OK] C:\AUTOEXEC.BAT exists
|
|
|
|
IF NOT EXIST C:\NET\STARTNET.BAT ECHO [FAIL] C:\NET\STARTNET.BAT missing
|
|
IF EXIST C:\NET\STARTNET.BAT ECHO [OK] C:\NET\STARTNET.BAT exists
|
|
|
|
IF NOT EXIST C:\BATCH\UPDATE.BAT ECHO [FAIL] C:\BATCH\UPDATE.BAT missing
|
|
IF EXIST C:\BATCH\UPDATE.BAT ECHO [OK] C:\BATCH\UPDATE.BAT exists
|
|
|
|
IF NOT EXIST C:\BATCH\NUL ECHO [WARN] C:\BATCH directory missing - run MD C:\BATCH
|
|
IF EXIST C:\BATCH\NUL ECHO [OK] C:\BATCH directory exists
|
|
|
|
REM ==================================================================
|
|
REM TEST 3: Check PATH variable
|
|
REM ==================================================================
|
|
|
|
ECHO.
|
|
ECHO [TEST 3] Checking PATH...
|
|
ECHO PATH=%PATH%
|
|
|
|
REM Check if C:\BATCH is in PATH (simple check - look for BATCH string)
|
|
ECHO %PATH% | FIND /I "BATCH" > NUL
|
|
IF ERRORLEVEL 1 GOTO TEST3_FAIL
|
|
ECHO [OK] C:\BATCH is in PATH
|
|
GOTO TEST4
|
|
|
|
:TEST3_FAIL
|
|
ECHO [WARN] C:\BATCH not in PATH
|
|
ECHO Fix: Add "SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\" to AUTOEXEC.BAT
|
|
GOTO TEST4
|
|
|
|
REM ==================================================================
|
|
REM TEST 4: Check T: drive
|
|
REM ==================================================================
|
|
|
|
:TEST4
|
|
ECHO.
|
|
ECHO [TEST 4] Checking T: drive...
|
|
|
|
REM Test if T: is accessible
|
|
DIR T:\ >nul
|
|
IF ERRORLEVEL 1 GOTO TEST4_FAIL
|
|
|
|
REM Return to C:
|
|
C:
|
|
|
|
REM Double-check with NUL test
|
|
IF NOT EXIST T:\*.* GOTO TEST4_FAIL
|
|
|
|
ECHO [OK] T: drive accessible
|
|
GOTO TEST5
|
|
|
|
:TEST4_FAIL
|
|
ECHO [FAIL] T: drive not accessible
|
|
ECHO Fix: Run C:\NET\STARTNET.BAT to map network drives
|
|
GOTO TEST5
|
|
|
|
REM ==================================================================
|
|
REM TEST 5: Check X: drive
|
|
REM ==================================================================
|
|
|
|
:TEST5
|
|
ECHO.
|
|
ECHO [TEST 5] Checking X: drive...
|
|
|
|
REM Test if X: is accessible
|
|
DIR X:\ >nul
|
|
IF ERRORLEVEL 1 GOTO TEST5_FAIL
|
|
|
|
REM Return to C:
|
|
C:
|
|
|
|
IF NOT EXIST X:\*.* GOTO TEST5_FAIL
|
|
|
|
ECHO [OK] X: drive accessible
|
|
GOTO TEST6
|
|
|
|
:TEST5_FAIL
|
|
ECHO [FAIL] X: drive not accessible
|
|
ECHO Fix: Run C:\NET\STARTNET.BAT to map network drives
|
|
GOTO TEST6
|
|
|
|
REM ==================================================================
|
|
REM TEST 6: Check if backup directory can be created
|
|
REM ==================================================================
|
|
|
|
:TEST6
|
|
ECHO.
|
|
ECHO [TEST 6] Checking backup directory creation...
|
|
|
|
IF "%MACHINE%"=="" GOTO TEST6_SKIP
|
|
|
|
REM Only test if T: is available
|
|
IF NOT EXIST T:\*.* GOTO TEST6_SKIP
|
|
|
|
REM Try to create machine directory
|
|
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE% 2>NUL
|
|
IF NOT EXIST T:\%MACHINE%\NUL GOTO TEST6_FAIL
|
|
|
|
REM Try to create backup subdirectory
|
|
IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST 2>NUL
|
|
IF NOT EXIST T:\%MACHINE%\TEST\*.* GOTO TEST6_FAIL
|
|
|
|
ECHO [OK] Can create T:\%MACHINE%\TEST
|
|
ECHO [OK] Backup directory structure works
|
|
|
|
REM Clean up test directory
|
|
RD T:\%MACHINE%\TEST 2>NUL
|
|
|
|
GOTO SUMMARY
|
|
|
|
:TEST6_FAIL
|
|
ECHO [FAIL] Cannot create directory on T: drive
|
|
ECHO Check: T: drive is writable
|
|
GOTO SUMMARY
|
|
|
|
:TEST6_SKIP
|
|
ECHO [SKIP] Cannot test (T: unavailable or MACHINE not set)
|
|
GOTO SUMMARY
|
|
|
|
REM ==================================================================
|
|
REM SUMMARY
|
|
REM ==================================================================
|
|
|
|
:SUMMARY
|
|
ECHO.
|
|
ECHO ==============================================================
|
|
ECHO Test Summary
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
|
|
REM Count passes and fails would be complex in DOS batch
|
|
REM Just show overall status
|
|
|
|
IF "%MACHINE%"=="" GOTO SUMMARY_FAIL
|
|
IF NOT EXIST C:\BATCH\UPDATE.BAT GOTO SUMMARY_FAIL
|
|
IF NOT EXIST T:\*.* GOTO SUMMARY_FAIL
|
|
|
|
ECHO [OK] All critical tests passed
|
|
ECHO.
|
|
ECHO Configuration appears correct.
|
|
ECHO.
|
|
ECHO Next step: Run UPDATE to test backup
|
|
ECHO C:\>UPDATE
|
|
ECHO.
|
|
GOTO END
|
|
|
|
:SUMMARY_FAIL
|
|
ECHO [FAIL] One or more tests failed
|
|
ECHO.
|
|
ECHO Please fix the failed tests before running UPDATE
|
|
ECHO.
|
|
ECHO Common fixes:
|
|
ECHO 1. Reboot machine (load AUTOEXEC.BAT changes)
|
|
ECHO 2. Run C:\NET\STARTNET.BAT (map network drives)
|
|
ECHO 3. Check network cable is connected
|
|
ECHO 4. Create C:\BATCH directory: MD C:\BATCH
|
|
ECHO.
|
|
|
|
:END
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
ECHO Press any key to exit...
|
|
PAUSE
|