From 6d3271c1448dd04e5098473f22165bc7f668525c Mon Sep 17 00:00:00 2001 From: azcomputerguru Date: Tue, 20 Jan 2026 18:04:24 -0700 Subject: [PATCH] fix: DOS 6.22 compatibility - remove 2>NUL, add XCOPY /I flag DOS 6.22 does not support stderr redirection (2>NUL), only stdout (>NUL). Added /I flag to XCOPY to assume destination is directory. Added CD \ATE and menux to AUTOEXEC.BAT generation. Changes: - CTONW.BAT v2.5: Removed 2>NUL from MD commands, added /I to XCOPY - NWTOC.BAT v2.8: Removed 2>NUL from MD commands, added /I to XCOPY - DEPLOY.BAT v2.3: Removed 2>NUL, added CD \ATE and menux to AUTOEXEC Tested successfully on TS-4R and TS-3R DOS machines. Co-Authored-By: Claude Opus 4.5 --- projects/dataforth-dos/batch-files/CTONW.BAT | 20 ++++++++--------- projects/dataforth-dos/batch-files/DEPLOY.BAT | 12 +++++----- projects/dataforth-dos/batch-files/NWTOC.BAT | 22 +++++++++---------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/projects/dataforth-dos/batch-files/CTONW.BAT b/projects/dataforth-dos/batch-files/CTONW.BAT index cfadd3a..dda9a69 100644 --- a/projects/dataforth-dos/batch-files/CTONW.BAT +++ b/projects/dataforth-dos/batch-files/CTONW.BAT @@ -1,6 +1,6 @@ @ECHO OFF REM Computer to Network - Upload local files to network -REM Version: 2.4 - XCOPY /Y for unattended operation (DOS 6.22) +REM Version: 2.5 - Added /I flag, removed 2>NUL (DOS 6.22) REM Last modified: 2026-01-20 REM Check MACHINE variable @@ -16,14 +16,14 @@ ECHO Upload: %MACHINE% to Network ECHO ============================================================== ECHO. -REM Create target directories (ignore errors) -MD T:\%MACHINE% >NUL 2>NUL -MD T:\%MACHINE%\ProdSW >NUL 2>NUL -MD T:\%MACHINE%\LOGS >NUL 2>NUL +REM Create target directories (ignore errors with >NUL) +MD T:\%MACHINE% >NUL +MD T:\%MACHINE%\ProdSW >NUL +MD T:\%MACHINE%\LOGS >NUL -REM Copy batch files (XCOPY /Y = no prompts, no trailing backslash) +REM Copy batch files (XCOPY /Y /I = no prompts, assume directory) ECHO Copying C:\BAT\*.BAT to T:\%MACHINE%\ProdSW... -XCOPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW /Y >NUL +XCOPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW /Y /I >NUL ECHO [OK] Batch files copied ECHO. @@ -32,9 +32,9 @@ IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE REM Copy ATE files ECHO Copying C:\ATE files to T:\%MACHINE%\ProdSW... -IF EXIST C:\ATE\*.EXE XCOPY C:\ATE\*.EXE T:\%MACHINE%\ProdSW /Y >NUL -IF EXIST C:\ATE\*.DAT XCOPY C:\ATE\*.DAT T:\%MACHINE%\ProdSW /Y >NUL -IF EXIST C:\ATE\*.CFG XCOPY C:\ATE\*.CFG T:\%MACHINE%\ProdSW /Y >NUL +IF EXIST C:\ATE\*.EXE XCOPY C:\ATE\*.EXE T:\%MACHINE%\ProdSW /Y /I >NUL +IF EXIST C:\ATE\*.DAT XCOPY C:\ATE\*.DAT T:\%MACHINE%\ProdSW /Y /I >NUL +IF EXIST C:\ATE\*.CFG XCOPY C:\ATE\*.CFG T:\%MACHINE%\ProdSW /Y /I >NUL ECHO [OK] ATE files copied ECHO. GOTO DONE diff --git a/projects/dataforth-dos/batch-files/DEPLOY.BAT b/projects/dataforth-dos/batch-files/DEPLOY.BAT index ad7f742..82d2278 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY.BAT @@ -1,7 +1,7 @@ @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 Version: 2.3 - Removed 2>NUL (DOS 6.22 only supports >NUL) REM Last modified: 2026-01-20 CLS @@ -22,9 +22,9 @@ 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 +REM Create directories (ignore errors with >NUL) +MD C:\BAT >NUL +MD T:\%MACHINE% >NUL ECHO [1/2] Copying batch files to C:\BAT... XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT /Y >NUL @@ -45,7 +45,7 @@ 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 MD C:\TEMP >NUL >> C:\AUTOEXEC.BAT ECHO CLS >> C:\AUTOEXEC.BAT ECHO ECHO. >> C:\AUTOEXEC.BAT ECHO ECHO Dataforth Test Machine: %MACHINE% >> C:\AUTOEXEC.BAT @@ -61,6 +61,8 @@ ECHO :READY >> C:\AUTOEXEC.BAT ECHO ECHO. >> C:\AUTOEXEC.BAT ECHO ECHO System Ready >> C:\AUTOEXEC.BAT ECHO ECHO. >> C:\AUTOEXEC.BAT +ECHO CD \ATE >> C:\AUTOEXEC.BAT +ECHO menux >> C:\AUTOEXEC.BAT ECHO [OK] AUTOEXEC.BAT installed with MACHINE=%MACHINE% ECHO. diff --git a/projects/dataforth-dos/batch-files/NWTOC.BAT b/projects/dataforth-dos/batch-files/NWTOC.BAT index 3253850..54f9e6f 100644 --- a/projects/dataforth-dos/batch-files/NWTOC.BAT +++ b/projects/dataforth-dos/batch-files/NWTOC.BAT @@ -1,6 +1,6 @@ @ECHO OFF REM Network to Computer - Download software updates from network to local C: drive -REM Version: 2.7 - XCOPY /Y for unattended operation (DOS 6.22) +REM Version: 2.8 - Added /I flag, removed 2>NUL (DOS 6.22) REM Last modified: 2026-01-20 REM Check MACHINE variable @@ -16,16 +16,16 @@ ECHO Download Updates: %MACHINE% from Network ECHO ============================================================== ECHO. -REM Create local directories (ignore errors) -MD C:\BAT >NUL 2>NUL -MD C:\ATE >NUL 2>NUL -MD C:\NET >NUL 2>NUL +REM Create local directories (ignore errors with >NUL) +MD C:\BAT >NUL +MD C:\ATE >NUL +MD C:\NET >NUL REM Check for COMMON updates IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON ECHO [1/3] Copying from T:\COMMON\ProdSW to C:\BAT... -XCOPY T:\COMMON\ProdSW\*.BAT C:\BAT /Y >NUL +XCOPY T:\COMMON\ProdSW\*.BAT C:\BAT /Y /I >NUL ECHO [OK] Common batch files updated ECHO. @@ -33,10 +33,10 @@ REM Check for machine-specific updates IF NOT EXIST T:\%MACHINE%\ProdSW\*.* GOTO SKIP_MACHINE ECHO [2/3] Copying from T:\%MACHINE%\ProdSW... -IF EXIST T:\%MACHINE%\ProdSW\*.BAT XCOPY T:\%MACHINE%\ProdSW\*.BAT C:\BAT /Y >NUL -IF EXIST T:\%MACHINE%\ProdSW\*.EXE XCOPY T:\%MACHINE%\ProdSW\*.EXE C:\ATE /Y >NUL -IF EXIST T:\%MACHINE%\ProdSW\*.DAT XCOPY T:\%MACHINE%\ProdSW\*.DAT C:\ATE /Y >NUL -IF EXIST T:\%MACHINE%\ProdSW\*.CFG XCOPY T:\%MACHINE%\ProdSW\*.CFG C:\ATE /Y >NUL +IF EXIST T:\%MACHINE%\ProdSW\*.BAT XCOPY T:\%MACHINE%\ProdSW\*.BAT C:\BAT /Y /I >NUL +IF EXIST T:\%MACHINE%\ProdSW\*.EXE XCOPY T:\%MACHINE%\ProdSW\*.EXE C:\ATE /Y /I >NUL +IF EXIST T:\%MACHINE%\ProdSW\*.DAT XCOPY T:\%MACHINE%\ProdSW\*.DAT C:\ATE /Y /I >NUL +IF EXIST T:\%MACHINE%\ProdSW\*.CFG XCOPY T:\%MACHINE%\ProdSW\*.CFG C:\ATE /Y /I >NUL ECHO [OK] Machine-specific files updated ECHO. GOTO CHECK_NET @@ -50,7 +50,7 @@ REM Check for network client updates IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET ECHO [3/3] Copying from T:\COMMON\NET to C:\NET... -XCOPY T:\COMMON\NET\*.* C:\NET /Y >NUL +XCOPY T:\COMMON\NET\*.* C:\NET /Y /I >NUL ECHO [OK] Network files updated ECHO. GOTO DONE