Fix DOS batch files: remove IF EXIST checks causing failures

DOS 6.22 IF EXIST with wildcards on SMB1 network paths causes
"Bad command" and "Too many parameters" errors. Rewrote CTONW,
NWTOC, and AUTOEXEC to v4.0 with direct COPY/MD commands.
Pre-created all station LOGS directories on new D2TESTNAS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 19:23:23 -07:00
parent 000ee3da5c
commit 78528d545e
4 changed files with 86 additions and 137 deletions

View File

@@ -1,8 +1,7 @@
@ECHO OFF
REM Dataforth Test Machine Startup - DOS 6.22
REM Automatically runs after CONFIG.SYS during boot
REM Version: 3.0 - Auto-update system integrated
REM Last modified: 2026-01-19
REM Version: 4.0 - No IF EXIST checks
REM Last modified: 2026-03-12
REM Set machine identity (configured by DEPLOY.BAT)
SET MACHINE=TS-4R
@@ -21,25 +20,21 @@ CLS
ECHO.
ECHO ==============================================================
ECHO Dataforth Test Machine: %MACHINE%
ECHO DOS 6.22 with Automatic Update System
ECHO AUTOEXEC v4.0 - 2026-03-12
ECHO ==============================================================
ECHO.
REM Create required directories if they don't exist
IF NOT EXIST C:\TEMP\*.* MD C:\TEMP
IF NOT EXIST C:\BAT\*.* MD C:\BAT
IF NOT EXIST C:\BATCH\*.* MD C:\BATCH
REM Create required directories
MD C:\TEMP
MD C:\BAT
MD C:\BATCH
ECHO Starting network client...
ECHO.
REM Start network client and map T: and X: drives
IF EXIST C:\STARTNET.BAT CALL C:\STARTNET.BAT
CALL C:\STARTNET.BAT
REM Verify T: drive is accessible
IF NOT EXIST T:\*.* GOTO NET_FAILED
ECHO (OK) Network started
ECHO.
ECHO Network Drives:
ECHO T: = \\D2TESTNAS\test
@@ -48,11 +43,11 @@ ECHO.
REM Download latest software updates from network
ECHO Checking for software updates...
IF EXIST C:\BAT\NWTOC.BAT CALL C:\BAT\NWTOC.BAT
CALL C:\BAT\NWTOC.BAT
REM Upload test data to network for database import
ECHO Uploading test data to network...
IF EXIST C:\BAT\CTONW.BAT CALL C:\BAT\CTONW.BAT
CALL C:\BAT\CTONW.BAT
ECHO.
ECHO ==============================================================
@@ -65,17 +60,5 @@ ECHO CHECKUPD - Check for available updates
ECHO CTONW - Manual upload to network
ECHO NWTOC - Manual download from network
ECHO.
GOTO END
:NET_FAILED
ECHO ERROR: Network drive mapping failed
ECHO T: drive not accessible
ECHO.
ECHO To start network manually:
ECHO C:\STARTNET.BAT
ECHO.
ECHO Updates and backups will not work until network is available.
ECHO.
PAUSE
:END

View File

@@ -1,62 +1,37 @@
@ECHO OFF
REM Computer to Network - Upload local test results to network
REM Version: 3.2 - DOS 6.22 compatible
REM Last modified: 2026-01-21
REM Version: 4.0 - No IF EXIST checks, dirs pre-created on server
REM Last modified: 2026-03-12
REM Verify MACHINE variable is set
IF "%MACHINE%"=="" GOTO NO_MACHINE
REM Verify T: drive
IF NOT EXIST T:\*.* GOTO NO_DRIVE
REM Verify machine folder exists
IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER
ECHO ........................................
ECHO Archiving datalog files to network...
ECHO CTONW.BAT v3.2 > C:\ATE\CTONW.LOG
ECHO CTONW.BAT v4.0 > C:\ATE\CTONW.LOG
ECHO Machine: %MACHINE% >> C:\ATE\CTONW.LOG
ECHO Copying from C:\ATE\ to T:\%MACHINE%\LOGS\ >> C:\ATE\CTONW.LOG
REM Check for ATE directory
IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE
REM Ensure target LOGS directories exist
IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS
IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG
IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG
IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG
IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG
IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG
IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG
IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG
IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG
IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG
IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG
IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG
IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG
IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG
IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG
IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG
REM Copy log data to network (dirs pre-created on server)
COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG
COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG
COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG
COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG
COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG
COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG
COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG
COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG
COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG
ECHO Archiving work-order report files to network...
IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports
IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports
COPY C:\Reports\*.TXT T:\%MACHINE%\Reports
ECHO Archiving log file to network...
IF EXIST C:\ATE\*.LOG COPY C:\ATE\*.LOG T:\%MACHINE%
COPY C:\ATE\*.LOG T:\%MACHINE%
ECHO Network archiving of datalog files done!
ECHO ........................................
GOTO END
:SKIP_ATE
ECHO No C:\ATE directory - skipping
GOTO END
:NO_MACHINE
ECHO ........................................
ECHO ERROR: MACHINE variable not set
@@ -65,18 +40,4 @@ ECHO ........................................
PAUSE
GOTO END
:NO_DRIVE
ECHO ERROR: T: drive not available
ECHO Run C:\STARTNET.BAT first
PAUSE
GOTO END
:NO_FOLDER
ECHO ........................................
ECHO ERROR: Machine folder T:\%MACHINE% not found
ECHO Run ATESYNC to create it first
ECHO ........................................
PAUSE
GOTO END
:END

View File

@@ -1,80 +1,49 @@
@ECHO OFF
REM Network to Computer - Download software updates from network to local C: drive
REM Version: 3.5 - Use COPY, no NUL redirects
REM Last modified: 2026-01-21
REM Network to Computer - Download software updates from network
REM Version: 4.0 - No IF EXIST checks, direct COPY
REM Last modified: 2026-03-12
REM Check T: drive
IF NOT EXIST T:\*.* GOTO NO_DRIVE
REM Display banner
ECHO.
ECHO ==============================================================
ECHO Download Updates from Network
ECHO NWTOC v4.0 - Download Updates from Network
ECHO ==============================================================
ECHO.
REM Create local directories (errors ignored)
IF NOT EXIST C:\BAT\*.* MD C:\BAT
IF NOT EXIST C:\ATE\*.* MD C:\ATE
IF NOT EXIST C:\ATE\5BDATA\*.* MD C:\ATE\5BDATA
IF NOT EXIST C:\ATE\7BDATA\*.* MD C:\ATE\7BDATA
IF NOT EXIST C:\ATE\8BDATA\*.* MD C:\ATE\8BDATA
IF NOT EXIST C:\ATE\DSCDATA\*.* MD C:\ATE\DSCDATA
IF NOT EXIST C:\ATE\HVDATA\*.* MD C:\ATE\HVDATA
IF NOT EXIST C:\ATE\PWRDATA\*.* MD C:\ATE\PWRDATA
IF NOT EXIST C:\ATE\RMSDATA\*.* MD C:\ATE\RMSDATA
IF NOT EXIST C:\ATE\SCTDATA\*.* MD C:\ATE\SCTDATA
IF NOT EXIST C:\NET\*.* MD C:\NET
REM Check for COMMON updates
IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON
REM Create local directories (MD is harmless if they exist locally)
MD C:\BAT
MD C:\ATE
MD C:\ATE\5BDATA
MD C:\ATE\7BDATA
MD C:\ATE\8BDATA
MD C:\ATE\DSCDATA
MD C:\ATE\HVDATA
MD C:\ATE\PWRDATA
MD C:\ATE\RMSDATA
MD C:\ATE\SCTDATA
MD C:\NET
ECHO (1/3) Copying batch files to C:\BAT...
COPY T:\COMMON\ProdSW\*.BAT C:\BAT
ECHO Done
ECHO.
ECHO (2/3) Copying ATE data folders to C:\ATE...
IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA
IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA
IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA
IF EXIST T:\Ate\ProdSW\DSCDATA\*.* COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA
IF EXIST T:\Ate\ProdSW\HVDATA\*.* COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA
IF EXIST T:\Ate\ProdSW\PWRDATA\*.* COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA
IF EXIST T:\Ate\ProdSW\RMSDATA\*.* COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA
IF EXIST T:\Ate\ProdSW\SCTDATA\*.* COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA
ECHO Done
COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA
COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA
COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA
COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA
COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA
COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA
COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA
COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA
ECHO.
REM Check for network client updates
IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET
ECHO (3/3) Copying network files to C:\NET...
COPY T:\COMMON\NET\*.* C:\NET
ECHO Done
ECHO.
GOTO DONE
:SKIP_NET
ECHO (3/3) No network updates
ECHO.
:DONE
ECHO ==============================================================
ECHO Download Complete
ECHO NWTOC v4.0 Download Complete
ECHO ==============================================================
ECHO.
GOTO END
:NO_COMMON
ECHO ERROR: T:\COMMON\ProdSW not found
PAUSE
GOTO END
:NO_DRIVE
ECHO ERROR: T: drive not available
ECHO Run C:\STARTNET.BAT first
PAUSE
GOTO END
:END

View File

@@ -241,3 +241,39 @@ ssh root@192.168.0.117 "crontab -r"
- DOS machine testing started - Error 53 resolved
- Data transfer ongoing (~24GB+ transferred, snapshots pending restart)
- Session saved: ~18:45
## Update: ~19:30 - Batch File Fix and DOS Machine Testing
### DOS Machine Testing Results
- All 4 tested machines (TS-3L, TS-3R, TS-4L, TS-4R) connected to new Linux NAS successfully
- T: drive mapped via NetBIOS name (after killing old NAS nmbd)
- Files successfully copied (3 .LOG files)
- BUT: "Bad command or file name" (5x) and "Too many parameters" (5x) errors from IF EXIST/IF NOT EXIST commands
- Confirmed CTONW.BAT v3.2 on machine, correct line endings (CR+LF verified via DEBUG)
- Root cause: DOS 6.22 IF EXIST command failing on network paths - likely SMB1 compatibility issue with wildcard queries
### Fix Applied: Batch Files v4.0
Eliminated all IF EXIST/IF NOT EXIST checks from startup batch files. Directories pre-created on server.
**CTONW.BAT v4.0** - Direct COPY commands, no IF EXIST guards. Target dirs pre-created on NAS.
**NWTOC.BAT v4.0** - Direct MD and COPY commands, no IF EXIST guards. MD harmless if dir exists locally.
**AUTOEXEC.BAT v4.0** - Removed IF EXIST around CALL commands, direct MD for local dirs.
All deployed to NAS at `/data/test/COMMON/ProdSW/`. Machines will pick up new versions on next boot via NWTOC download.
### Pre-created Directories on NAS
Ran script to create LOGS/5BLOG, LOGS/7BLOG, LOGS/8BLOG, LOGS/DSCLOG, LOGS/HVLOG, LOGS/PWRLOG, LOGS/SCTLOG, LOGS/VASLOG, and Reports for ALL TS-* station directories.
### Old NAS Status
- DHCP at 192.168.0.117
- nmbd killed, cron removed, NetBIOS ports 137/138 blocked via iptables
- rsync data transfer still running (single stream, ~24GB+ transferred)
- Snapshot transfer stopped (was at ~43GB logical), needs restart after data completes
### Pending
1. Reboot a DOS machine to test v4.0 batch files
2. Monitor data transfer completion
3. Restart snapshot transfer after data completes
4. Verify test data appears in correct LOGS subdirectories on NAS
5. Set up AD2 scheduled task for rsync sync
6. Run real (non-dry) Sync-FromNAS-rsync.ps1 on AD2