Major DOS 6.22 compatibility fixes for the Dataforth update system: Changes Made: - Replace COPY /Y with XCOPY /Y (COPY doesn't support /Y in DOS 6.22) - Remove all trailing backslashes from XCOPY destinations (causes "Too many parameters") - Remove %%~dpnF and %~nx1 syntax (Windows NT only, not DOS 6.22) - Remove \NUL directory existence checks (unreliable in DOS 6.22) - Simplify all batch files to minimal, reliable DOS 6.22 patterns - Use MD >NUL 2>NUL for directory creation (ignore errors) Files Updated: - NWTOC.BAT v2.7: Simplified download with XCOPY /Y - CTONW.BAT v2.4: Simplified upload with XCOPY /Y - DEPLOY.BAT v2.2: Simplified deployment with XCOPY /Y - CHECKUPD.BAT v1.3: Removed %~nx1 syntax - UPDATE-ROOT.BAT: Root redirect script - UPDATE-PRODSW.BAT v2.3: Backup utility (new file, was UPDATE.BAT in ProdSW) Why: - Previous versions caused infinite loops due to COPY /Y not existing in DOS 6.22 - Trailing backslashes on XCOPY destinations caused "Too many parameters" errors - Complex variable syntax like %%~dpnF is NT-only and breaks on DOS 6.22 - Simplified scripts are more reliable and easier to debug Testing: - Deployed to AD2 (192.168.0.6) and D2TESTNAS (192.168.0.9) - Ready for testing on TS-4R and TS-3R DOS machines Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
86 lines
2.7 KiB
Batchfile
86 lines
2.7 KiB
Batchfile
@ECHO OFF
|
|
REM One-time deployment script for DOS Update System
|
|
REM Usage: T:\COMMON\ProdSW\DEPLOY.BAT machine-name
|
|
REM Version: 2.2 - XCOPY /Y for unattended operation (DOS 6.22)
|
|
REM Last modified: 2026-01-20
|
|
|
|
CLS
|
|
|
|
REM Check machine name parameter
|
|
IF "%1"=="" GOTO NO_MACHINE
|
|
|
|
REM Save machine name
|
|
SET MACHINE=%1
|
|
|
|
ECHO ==============================================================
|
|
ECHO DOS Update System - Deployment
|
|
ECHO ==============================================================
|
|
ECHO Machine: %MACHINE%
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
ECHO Press any key to install...
|
|
PAUSE >NUL
|
|
ECHO.
|
|
|
|
REM Create directories (ignore errors)
|
|
MD C:\BAT >NUL 2>NUL
|
|
MD T:\%MACHINE% >NUL 2>NUL
|
|
|
|
ECHO [1/2] Copying batch files to C:\BAT...
|
|
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT /Y >NUL
|
|
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT /Y >NUL
|
|
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT /Y >NUL
|
|
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT /Y >NUL
|
|
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT /Y >NUL
|
|
XCOPY T:\COMMON\ProdSW\REBOOT.BAT C:\BAT /Y >NUL
|
|
ECHO [OK] Batch files installed
|
|
ECHO.
|
|
|
|
ECHO [2/2] Installing AUTOEXEC.BAT...
|
|
REM Create AUTOEXEC.BAT with machine name
|
|
ECHO @ECHO OFF > C:\AUTOEXEC.BAT
|
|
ECHO REM Dataforth Test Machine - DOS 6.22 >> C:\AUTOEXEC.BAT
|
|
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
|
ECHO SET PATH=C:\DOS;C:\NET;C:\BAT;C:\BATCH;C:\ >> C:\AUTOEXEC.BAT
|
|
ECHO PROMPT $P$G >> C:\AUTOEXEC.BAT
|
|
ECHO SET TEMP=C:\TEMP >> C:\AUTOEXEC.BAT
|
|
ECHO SET TMP=C:\TEMP >> C:\AUTOEXEC.BAT
|
|
ECHO MD C:\TEMP >NUL 2>NUL >> C:\AUTOEXEC.BAT
|
|
ECHO CLS >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO. >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO Dataforth Test Machine: %MACHINE% >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO. >> C:\AUTOEXEC.BAT
|
|
ECHO IF EXIST C:\STARTNET.BAT CALL C:\STARTNET.BAT >> C:\AUTOEXEC.BAT
|
|
ECHO IF NOT EXIST T:\*.* GOTO NONET >> C:\AUTOEXEC.BAT
|
|
ECHO IF EXIST C:\BAT\NWTOC.BAT CALL C:\BAT\NWTOC.BAT >> C:\AUTOEXEC.BAT
|
|
ECHO IF EXIST C:\BAT\CTONW.BAT CALL C:\BAT\CTONW.BAT >> C:\AUTOEXEC.BAT
|
|
ECHO GOTO READY >> C:\AUTOEXEC.BAT
|
|
ECHO :NONET >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO [ERROR] Network not available >> C:\AUTOEXEC.BAT
|
|
ECHO :READY >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO. >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO System Ready >> C:\AUTOEXEC.BAT
|
|
ECHO ECHO. >> C:\AUTOEXEC.BAT
|
|
ECHO [OK] AUTOEXEC.BAT installed with MACHINE=%MACHINE%
|
|
ECHO.
|
|
|
|
ECHO ==============================================================
|
|
ECHO Deployment Complete - REBOOT NOW
|
|
ECHO ==============================================================
|
|
ECHO.
|
|
PAUSE
|
|
GOTO END
|
|
|
|
:NO_MACHINE
|
|
ECHO.
|
|
ECHO [ERROR] Machine name not provided
|
|
ECHO.
|
|
ECHO Usage: DEPLOY.BAT machine-name
|
|
ECHO Example: DEPLOY.BAT TS-4R
|
|
ECHO.
|
|
PAUSE
|
|
GOTO END
|
|
|
|
:END
|
|
SET MACHINE=
|