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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user