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

View File

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

View File

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

View File

@@ -241,3 +241,39 @@ ssh root@192.168.0.117 "crontab -r"
- DOS machine testing started - Error 53 resolved - DOS machine testing started - Error 53 resolved
- Data transfer ongoing (~24GB+ transferred, snapshots pending restart) - Data transfer ongoing (~24GB+ transferred, snapshots pending restart)
- Session saved: ~18:45 - 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