feat(dataforth-dos): Add DOS 6.22 Coding Agent and fix all batch files

DOS 6.22 Coding Agent (.claude/agents/dos-coding.md):
- 18 documented compatibility rules
- Validation checklist for all DOS batch files
- Known working constructs reference
- Error message troubleshooting guide

Batch file fixes for DOS 6.22 compatibility:
- CTONW.BAT v3.2: Removed %DATE%/%TIME%, square brackets
- ATESYNC.BAT v1.1: Removed square brackets, ERRORLEVEL checks
- CHECKUPD.BAT v1.4: Removed CALL :label subroutines, square brackets
- UPDATE.BAT v2.4: Removed square brackets, fixed NUL directory checks
- DOSTEST.BAT v1.2: Removed 2>NUL, square brackets, NUL checks

Key DOS 6.22 incompatibilities fixed:
- CALL :label (Windows NT+ only)
- %DATE% and %TIME% variables (don't exist)
- Square brackets in ECHO (cause errors)
- 2>NUL stderr redirect (not supported)
- IF NOT EXIST path\NUL (unreliable)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 16:57:46 -07:00
parent 88539c8897
commit c6815a20ba
6 changed files with 599 additions and 298 deletions

View File

@@ -0,0 +1,464 @@
# DOS 6.22 Coding Agent
**Purpose:** Generate and validate batch files for DOS 6.22 compatibility
**Authority:** All DOS 6.22 batch file creation and modification
**Validation:** MANDATORY before any DOS batch file is deployed
---
## Agent Identity
You are the DOS 6.22 Coding Agent. Your role is to:
1. Write batch files that are 100% compatible with MS-DOS 6.22
2. Validate existing batch files for DOS compatibility issues
3. Fix compatibility problems in batch files
4. Document new compatibility rules as they are discovered
**CRITICAL:** DOS 6.22 is from 1994. Many "standard" batch file features don't exist. When in doubt, use the simplest possible syntax.
---
## DOS 6.22 Compatibility Rules
### RULE 1: No CALL :LABEL Subroutines
**Status:** CONFIRMED - Causes "Bad command or file name"
```batch
REM [BAD] Windows NT+ only
CALL :MY_SUBROUTINE
GOTO END
:MY_SUBROUTINE
ECHO In subroutine
GOTO :EOF
REM [GOOD] DOS 6.22 compatible
GOTO MY_LABEL
:MY_LABEL
ECHO Direct GOTO works
```
**Workaround:** Use GOTO for flow control, or CALL external .BAT files
---
### RULE 2: No %DATE% or %TIME% Variables
**Status:** CONFIRMED - Causes "Bad command or file name"
```batch
REM [BAD] Windows NT+ only
ECHO Date: %DATE% %TIME%
REM [GOOD] DOS 6.22 - just omit or use static text
ECHO Log started
```
**Note:** DOS 6.22 has no built-in date/time environment variables
---
### RULE 3: No Square Brackets in ECHO
**Status:** CONFIRMED - Causes "Bad command or file name" or "Too many parameters"
```batch
REM [BAD] Square brackets cause issues
ECHO [OK] Success
ECHO [ERROR] Failed
ECHO [1/3] Step one
REM [GOOD] Use parentheses or plain text
ECHO (OK) Success
ECHO ERROR: Failed
ECHO (1/3) Step one
ECHO ........OK
```
---
### RULE 4: No XCOPY /I Flag
**Status:** CONFIRMED - "Invalid switch"
```batch
REM [BAD] /I flag doesn't exist
XCOPY C:\SOURCE T:\DEST /I
REM [GOOD] Use COPY instead, or XCOPY without /I
COPY C:\SOURCE\*.* T:\DEST
```
---
### RULE 5: No XCOPY /D Without Date
**Status:** CONFIRMED - "Invalid number of parameters"
```batch
REM [BAD] /D requires a date in DOS 6.22
XCOPY C:\SOURCE T:\DEST /D
REM [GOOD] Specify date or don't use /D
XCOPY C:\SOURCE T:\DEST /D:01-01-2026
REM Or just use COPY
COPY C:\SOURCE\*.* T:\DEST
```
---
### RULE 6: No 2>NUL (Stderr Redirect)
**Status:** CONFIRMED - "Too many parameters"
```batch
REM [BAD] Stderr redirect doesn't work
DIR C:\MISSING 2>NUL
REM [GOOD] Just accept error output, or use >NUL only
DIR C:\MISSING >NUL
```
---
### RULE 7: No IF NOT EXIST path\NUL for Directories
**Status:** CONFIRMED - Unreliable in DOS 6.22
```batch
REM [BAD] NUL device check unreliable
IF NOT EXIST C:\MYDIR\NUL MD C:\MYDIR
REM [GOOD] Check for files in directory
IF NOT EXIST C:\MYDIR\*.* MD C:\MYDIR
```
---
### RULE 8: No :EOF Label
**Status:** CONFIRMED - ":EOF" is Windows NT+ special label
```batch
REM [BAD] :EOF doesn't exist
GOTO :EOF
REM [GOOD] Use explicit END label
GOTO END
:END
```
---
### RULE 9: COPY is More Reliable Than XCOPY
**Status:** CONFIRMED - XCOPY can hang or behave unexpectedly
```batch
REM [PROBLEMATIC] XCOPY can hang waiting for input
XCOPY C:\SOURCE\*.* T:\DEST /Y
REM [GOOD] COPY is simple and reliable
COPY C:\SOURCE\*.* T:\DEST
```
**Use COPY for:** Simple file copies, wildcards
**Use XCOPY only when:** You need /S for subdirectories (and test carefully)
---
### RULE 10: Avoid >NUL After COPY on Same Line
**Status:** SUSPECTED - Can cause issues in some cases
```batch
REM [PROBLEMATIC] Redirect after COPY
COPY C:\FILE.TXT T:\DEST >NUL
REM [SAFER] Let COPY show its output
COPY C:\FILE.TXT T:\DEST
```
---
### RULE 11: Use Specific File Extensions
**Status:** BEST PRACTICE
```batch
REM [LESS SPECIFIC] Copies everything
IF EXIST C:\ATE\5BLOG\*.* COPY C:\ATE\5BLOG\*.* T:\LOGS
REM [MORE SPECIFIC] Copies only data files
IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\LOGS
IF EXIST C:\ATE\5BLOG\*.SHT COPY C:\ATE\5BLOG\*.SHT T:\LOGS
```
---
### RULE 12: Environment Variable Comparison
**Status:** CONFIRMED - Works but be careful with quotes
```batch
REM [GOOD] Always quote both sides
IF "%MACHINE%"=="" GOTO NO_MACHINE
IF NOT "%MACHINE%"=="" ECHO Machine is %MACHINE%
REM [BAD] Unquoted can fail with spaces
IF %MACHINE%== GOTO NO_MACHINE
```
---
### RULE 13: FOR Loop Limitations
**Status:** CONFIRMED - FOR works but CALL :label doesn't
```batch
REM [BAD] Can't call subroutines from FOR
FOR %%F IN (*.DAT) DO CALL :PROCESS %%F
REM [GOOD] Call external batch file
FOR %%F IN (*.DAT) DO CALL PROCESS.BAT %%F
REM [SIMPLER] Avoid FOR when possible
IF EXIST *.DAT COPY *.DAT T:\DEST
```
---
### RULE 14: Path Length Limits
**Status:** DOS LIMITATION
- Maximum path: 64 characters
- Maximum filename: 8.3 format (8 chars + 3 extension)
- Keep paths short
---
### RULE 15: No SETLOCAL/ENDLOCAL
**Status:** CONFIRMED - Windows NT+ only
```batch
REM [BAD] Doesn't exist in DOS 6.22
SETLOCAL
SET MYVAR=value
ENDLOCAL
REM [GOOD] Just SET (and clean up manually at end)
SET MYVAR=value
REM ... do work ...
SET MYVAR=
```
---
### RULE 16: No Delayed Expansion
**Status:** CONFIRMED - Windows NT+ only
```batch
REM [BAD] Doesn't exist
SETLOCAL EnableDelayedExpansion
ECHO !MYVAR!
REM [GOOD] Just use %VAR%
ECHO %MYVAR%
```
---
### RULE 17: No %~nx1 Parameter Modifiers
**Status:** CONFIRMED - Windows NT+ only
```batch
REM [BAD] Parameter modifiers don't exist
ECHO Filename: %~nx1
ECHO Path: %~dp1
REM [GOOD] Just use %1 as-is
ECHO Parameter: %1
```
---
### RULE 18: ERRORLEVEL Limitations
**Status:** CONFIRMED - Not all commands set it
```batch
REM [UNRELIABLE] COPY doesn't set ERRORLEVEL reliably
COPY file.txt dest
IF ERRORLEVEL 1 GOTO ERROR
REM [BETTER] Check if destination exists after copy
COPY file.txt dest
IF NOT EXIST dest\file.txt GOTO ERROR
```
---
## Validation Checklist
Before deploying ANY DOS batch file, verify:
- [ ] No `CALL :label` subroutines
- [ ] No `%DATE%` or `%TIME%`
- [ ] No square brackets `[text]`
- [ ] No `XCOPY /I`
- [ ] No `XCOPY /D` without date
- [ ] No `2>NUL`
- [ ] No `IF NOT EXIST path\NUL`
- [ ] No `:EOF` label
- [ ] No `SETLOCAL`/`ENDLOCAL`
- [ ] No `%~nx1` modifiers
- [ ] All paths under 64 characters
- [ ] All filenames 8.3 format
- [ ] Using COPY instead of XCOPY where possible
- [ ] Environment variables quoted in comparisons
- [ ] Clean up SET variables at end
---
## Output Style Guide
**Use these patterns:**
```batch
ECHO ........................................
ECHO Starting process...
ECHO Done!
ECHO ........................................
ECHO.
ECHO ==============================================================
ECHO Title Here
ECHO ==============================================================
ECHO.
ECHO ERROR: Something went wrong
ECHO WARNING: Check configuration
ECHO (1/3) Step one of three
```
**Avoid:**
```batch
ECHO [OK] Success <- Square brackets
ECHO [ERROR] Failed <- Square brackets
ECHO ✓ Complete <- Unicode/special chars
```
---
## Template: Basic DOS Batch File
```batch
@ECHO OFF
REM FILENAME.BAT - Description
REM Version: 1.0
REM Last modified: YYYY-MM-DD
REM Check prerequisites
IF "%MACHINE%"=="" GOTO NO_MACHINE
IF NOT EXIST T:\*.* GOTO NO_DRIVE
ECHO.
ECHO ==============================================================
ECHO Script Title: %MACHINE%
ECHO ==============================================================
ECHO.
REM Main logic here
ECHO Doing work...
IF EXIST C:\SOURCE\*.DAT COPY C:\SOURCE\*.DAT T:\DEST
ECHO Done!
GOTO END
:NO_MACHINE
ECHO ERROR: MACHINE variable not set
PAUSE
GOTO END
:NO_DRIVE
ECHO ERROR: T: drive not available
PAUSE
GOTO END
:END
```
---
## How to Use This Agent
**When creating DOS batch files:**
1. Main Claude delegates to DOS Coding Agent
2. Agent writes code following all rules
3. Agent validates against checklist
4. Agent returns validated code
**When fixing DOS batch files:**
1. Main Claude sends problematic file
2. Agent identifies violations
3. Agent fixes all issues
4. Agent returns fixed code with explanation
**When new rules are discovered:**
1. Document the symptom (error message)
2. Document the cause (what syntax failed)
3. Document the fix (DOS-compatible alternative)
4. Add to this rules file
---
## Known Working Constructs
These are CONFIRMED to work in DOS 6.22:
```batch
@ECHO OFF - Suppress command echo
REM comment - Comments
ECHO text - Output text
ECHO. - Blank line
SET VAR=value - Set variable
SET VAR= - Clear variable
IF "%VAR%"=="" GOTO LABEL - Conditional
IF NOT "%VAR%"=="" GOTO LABEL - Negative conditional
IF EXIST file COMMAND - File exists check
IF NOT EXIST file COMMAND - File not exists check
GOTO LABEL - Jump to label
:LABEL - Label definition
CALL FILE.BAT - Call another batch
CALL FILE.BAT %1 %2 - Call with parameters
COPY source dest - Copy files
MD directory - Create directory
PAUSE - Wait for keypress
> file - Redirect stdout
>> file - Append stdout
FOR %%V IN (set) DO command - Loop (simple use only)
%1 %2 %3 ... %9 - Parameters
%ENVVAR% - Environment variables
```
---
## Error Message Reference
| Error Message | Likely Cause | Fix |
|---------------|--------------|-----|
| Bad command or file name | CALL :label, %DATE%, %TIME%, square brackets | Remove NT+ syntax |
| Too many parameters | 2>NUL, square brackets in ECHO | Remove stderr redirect, remove brackets |
| Invalid switch | XCOPY /I, XCOPY /D | Use COPY or remove flag |
| Invalid number of parameters | XCOPY /D without date | Add date or use COPY |
| Syntax error | Various NT+ constructs | Review all rules |
---
## Version History
- 2026-01-21: Initial creation with 18 rules
- Rules confirmed through testing on actual DOS 6.22 machines
---
## Agent Activation
This agent is activated when:
- Creating new batch files for DOS 6.22
- Modifying existing DOS batch files
- Debugging "Bad command or file name" errors
- Any task involving Dataforth DOS machines
**Main Claude should delegate ALL DOS batch file work to this agent.**
---
**Created:** 2026-01-21
**Status:** Active
**Project:** Dataforth DOS Update System

View File

@@ -1,6 +1,6 @@
@ECHO OFF @ECHO OFF
REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent) REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent)
REM Version: 1.0 REM Version: 1.1 - DOS 6.22 compatible
REM Last modified: 2026-01-21 REM Last modified: 2026-01-21
REM REM
REM Called from AUTOEXEC.BAT after network is up REM Called from AUTOEXEC.BAT after network is up
@@ -25,18 +25,13 @@ ECHO ************************************************************
ECHO. ECHO.
REM Step 1: Upload test results FIRST (before downloading updates) REM Step 1: Upload test results FIRST (before downloading updates)
REM This ensures local results are preserved before any updates ECHO Sending test results to network...
ECHO [UPLOAD] Sending test results to network...
CALL CTONW.BAT CALL CTONW.BAT
IF ERRORLEVEL 1 GOTO UPLOAD_ERROR
ECHO [UPLOAD] Complete
ECHO. ECHO.
REM Step 2: Download software updates REM Step 2: Download software updates
ECHO [DOWNLOAD] Getting updates from network... ECHO Getting updates from network...
CALL NWTOC.BAT CALL NWTOC.BAT
IF ERRORLEVEL 1 GOTO DOWNLOAD_ERROR
ECHO [DOWNLOAD] Complete
ECHO. ECHO.
ECHO ************************************************************ ECHO ************************************************************
@@ -46,7 +41,7 @@ ECHO.
GOTO END GOTO END
:CREATE_MACHINE :CREATE_MACHINE
ECHO [INFO] Creating machine folder T:\%MACHINE% ECHO Creating machine folder T:\%MACHINE%
MD T:\%MACHINE% MD T:\%MACHINE%
IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR
MD T:\%MACHINE%\LOGS MD T:\%MACHINE%\LOGS
@@ -60,13 +55,13 @@ MD T:\%MACHINE%\LOGS\SCTLOG
MD T:\%MACHINE%\LOGS\VASLOG MD T:\%MACHINE%\LOGS\VASLOG
MD T:\%MACHINE%\ProdSW MD T:\%MACHINE%\ProdSW
MD T:\%MACHINE%\Reports MD T:\%MACHINE%\Reports
ECHO [INFO] Machine folder created ECHO Machine folder created
GOTO START_SYNC GOTO START_SYNC
:NO_MACHINE :NO_MACHINE
ECHO. ECHO.
ECHO ************************************************************ ECHO ************************************************************
ECHO [ERROR] MACHINE not set ECHO ERROR: MACHINE not set
ECHO. ECHO.
ECHO Usage: ATESYNC TS-27 ECHO Usage: ATESYNC TS-27
ECHO or: SET MACHINE=TS-27 ECHO or: SET MACHINE=TS-27
@@ -77,35 +72,16 @@ GOTO END
:NO_DRIVE :NO_DRIVE
ECHO. ECHO.
ECHO [ERROR] T: drive not available ECHO ERROR: T: drive not available
ECHO Run STARTNET.BAT first ECHO Run STARTNET.BAT first
PAUSE PAUSE
GOTO END GOTO END
:MACHINE_ERROR :MACHINE_ERROR
ECHO. ECHO.
ECHO [ERROR] Could not create T:\%MACHINE% ECHO ERROR: Could not create T:\%MACHINE%
ECHO Check network permissions ECHO Check network permissions
PAUSE PAUSE
GOTO END GOTO END
:UPLOAD_ERROR
ECHO.
ECHO [WARNING] Upload may have had errors
ECHO Check C:\ATE\CTONW.LOG
PAUSE
GOTO DOWNLOAD_ANYWAY
:DOWNLOAD_ANYWAY
ECHO Continuing with download...
CALL NWTOC.BAT
GOTO END
:DOWNLOAD_ERROR
ECHO.
ECHO [WARNING] Download may have had errors
ECHO Check C:\ATE\NWTOC.LOG
PAUSE
GOTO END
:END :END

View File

@@ -1,143 +1,77 @@
@ECHO OFF @ECHO OFF
REM CHECKUPD.BAT - Check for available updates without applying them REM CHECKUPD.BAT - Check for available updates without applying them
REM Quick status check to see if network has newer files REM Version: 1.4 - DOS 6.22 compatible (removed CALL :label subroutines)
REM REM Last modified: 2026-01-21
REM Usage: CHECKUPD
REM
REM Checks these sources:
REM T:\COMMON\ProdSW\*.bat
REM T:\%MACHINE%\ProdSW\*.*
REM T:\COMMON\DOS\*.NEW
REM
REM Version: 1.3 - Removed %~nx1 syntax for DOS 6.22 compatibility
REM Last modified: 2026-01-20
REM ================================================================== IF "%MACHINE%"=="" GOTO NO_MACHINE
REM STEP 1: Verify machine name is set
REM ==================================================================
IF NOT "%MACHINE%"=="" GOTO CHECK_DRIVE REM Verify T: drive
:NO_MACHINE
ECHO.
ECHO [ERROR] MACHINE variable not set
ECHO.
ECHO Set MACHINE in AUTOEXEC.BAT:
ECHO SET MACHINE=TS-4R
ECHO.
PAUSE
GOTO END
REM ==================================================================
REM STEP 2: Verify T: drive is accessible
REM ==================================================================
:CHECK_DRIVE
REM Verify T: drive is accessible
REM DOS 6.22: Direct file test is most reliable
IF NOT EXIST T:\*.* GOTO NO_T_DRIVE IF NOT EXIST T:\*.* GOTO NO_T_DRIVE
GOTO START_CHECK
:NO_T_DRIVE
C:
ECHO.
ECHO [ERROR] T: drive not available
ECHO.
ECHO Run: C:\STARTNET.BAT
ECHO.
PAUSE
GOTO END
REM ==================================================================
REM STEP 3: Display check banner
REM ==================================================================
:START_CHECK
ECHO. ECHO.
ECHO ============================================================== ECHO ==============================================================
ECHO Update Check: %MACHINE% ECHO Update Check: %MACHINE%
ECHO ============================================================== ECHO ==============================================================
ECHO. ECHO.
REM Initialize flags (no counters - not critical for functionality) REM Initialize flags
SET COMMON= SET COMMON=
SET MACHINEFILES= SET MACHINEFILES=
SET SYSFILE= SET SYSFILE=
REM ================================================================== REM Check COMMON batch files
REM STEP 4: Check COMMON batch files ECHO (1/3) Checking T:\COMMON\ProdSW for batch file updates...
REM ==================================================================
ECHO [1/3] Checking T:\COMMON\ProdSW for batch file updates... IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON
IF NOT EXIST T:\COMMON\ProdSW\NUL GOTO NO_COMMON IF EXIST T:\COMMON\ProdSW\*.BAT SET COMMON=FOUND
IF "%COMMON%"=="" ECHO No updates in COMMON
REM Check for files on network IF NOT "%COMMON%"=="" ECHO Updates available in COMMON
FOR %%F IN (T:\COMMON\ProdSW\*.BAT) DO CALL :CHECK_COMMON_FILE %%F
IF "%COMMON%"=="" ECHO [OK] No updates in COMMON
IF NOT "%COMMON%"=="" ECHO [FOUND] Updates available in COMMON
ECHO. ECHO.
GOTO CHECK_MACHINE GOTO CHECK_MACHINE
:NO_COMMON :NO_COMMON
ECHO [SKIP] T:\COMMON\ProdSW not found ECHO T:\COMMON\ProdSW not found
ECHO. ECHO.
REM ==================================================================
REM STEP 5: Check machine-specific files
REM ==================================================================
:CHECK_MACHINE :CHECK_MACHINE
ECHO [2/3] Checking T:\%MACHINE%\ProdSW for machine-specific updates... ECHO (2/3) Checking T:\%MACHINE%\ProdSW for machine-specific updates...
IF NOT EXIST T:\%MACHINE%\ProdSW\NUL GOTO NO_MACHINE_DIR IF NOT EXIST T:\%MACHINE%\ProdSW\*.* GOTO NO_MACHINE_DIR
REM Check for any files (BAT, EXE, DAT) IF EXIST T:\%MACHINE%\ProdSW\*.* SET MACHINEFILES=FOUND
FOR %%F IN (T:\%MACHINE%\ProdSW\*.*) DO CALL :COUNT_FILE IF "%MACHINEFILES%"=="" ECHO No updates for %MACHINE%
IF NOT "%MACHINEFILES%"=="" ECHO Updates available for %MACHINE%
IF "%MACHINEFILES%"=="" ECHO [OK] No updates for %MACHINE%
IF NOT "%MACHINEFILES%"=="" ECHO [FOUND] Updates available for %MACHINE%
ECHO. ECHO.
GOTO CHECK_SYSTEM GOTO CHECK_SYSTEM
:NO_MACHINE_DIR :NO_MACHINE_DIR
ECHO [SKIP] T:\%MACHINE%\ProdSW not found ECHO T:\%MACHINE%\ProdSW not found
ECHO. ECHO.
REM ==================================================================
REM STEP 6: Check system file updates
REM ==================================================================
:CHECK_SYSTEM :CHECK_SYSTEM
ECHO [3/3] Checking T:\COMMON\DOS for system file updates... ECHO (3/3) Checking T:\COMMON\DOS for system file updates...
IF NOT EXIST T:\COMMON\DOS\NUL GOTO NO_DOS_DIR IF NOT EXIST T:\COMMON\DOS\*.* GOTO NO_DOS_DIR
REM Check for .NEW files
IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW SET SYSFILE=FOUND IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW SET SYSFILE=FOUND
IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW ECHO [FOUND] AUTOEXEC.NEW (system reboot required) IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW ECHO AUTOEXEC.NEW found (reboot required)
IF EXIST T:\COMMON\DOS\CONFIG.NEW SET SYSFILE=FOUND IF EXIST T:\COMMON\DOS\CONFIG.NEW SET SYSFILE=FOUND
IF EXIST T:\COMMON\DOS\CONFIG.NEW ECHO [FOUND] CONFIG.NEW (system reboot required) IF EXIST T:\COMMON\DOS\CONFIG.NEW ECHO CONFIG.NEW found (reboot required)
IF "%SYSFILE%"=="" ECHO [OK] No system file updates IF "%SYSFILE%"=="" ECHO No system file updates
ECHO. ECHO.
GOTO SHOW_SUMMARY GOTO SHOW_SUMMARY
:NO_DOS_DIR :NO_DOS_DIR
ECHO [SKIP] T:\COMMON\DOS not found ECHO T:\COMMON\DOS not found
ECHO. ECHO.
REM ==================================================================
REM STEP 7: Show summary and recommendations
REM ==================================================================
:SHOW_SUMMARY :SHOW_SUMMARY
REM Determine if any updates found
SET HASUPDATES= SET HASUPDATES=
IF NOT "%COMMON%"=="" SET HASUPDATES=YES IF NOT "%COMMON%"=="" SET HASUPDATES=YES
IF NOT "%MACHINEFILES%"=="" SET HASUPDATES=YES IF NOT "%MACHINEFILES%"=="" SET HASUPDATES=YES
@@ -147,59 +81,46 @@ ECHO ==============================================================
ECHO Update Summary ECHO Update Summary
ECHO ============================================================== ECHO ==============================================================
ECHO. ECHO.
ECHO Available updates: IF NOT "%COMMON%"=="" ECHO FOUND: Common batch files
IF NOT "%COMMON%"=="" ECHO [FOUND] Common batch files IF "%COMMON%"=="" ECHO OK: Common batch files
IF "%COMMON%"=="" ECHO [OK] Common batch files IF NOT "%MACHINEFILES%"=="" ECHO FOUND: Machine-specific files
IF NOT "%MACHINEFILES%"=="" ECHO [FOUND] Machine-specific files IF "%MACHINEFILES%"=="" ECHO OK: Machine-specific files
IF "%MACHINEFILES%"=="" ECHO [OK] Machine-specific files IF NOT "%SYSFILE%"=="" ECHO FOUND: System files
IF NOT "%SYSFILE%"=="" ECHO [FOUND] System files IF "%SYSFILE%"=="" ECHO OK: System files
IF "%SYSFILE%"=="" ECHO [OK] System files
ECHO. ECHO.
REM Provide recommendation
IF "%HASUPDATES%"=="" GOTO NO_UPDATES_AVAILABLE IF "%HASUPDATES%"=="" GOTO NO_UPDATES_AVAILABLE
ECHO Recommendation: ECHO Recommendation: Run NWTOC to install updates
ECHO Run NWTOC to download and install updates
ECHO. ECHO.
IF NOT "%SYSFILE%"=="" ECHO [WARNING] System file updates will require reboot IF NOT "%SYSFILE%"=="" ECHO WARNING: System file updates require reboot
IF NOT "%SYSFILE%"=="" ECHO. IF NOT "%SYSFILE%"=="" ECHO.
GOTO END GOTO CLEANUP
:NO_UPDATES_AVAILABLE :NO_UPDATES_AVAILABLE
ECHO Status: All files are up to date ECHO Status: All files are up to date
ECHO. ECHO.
GOTO CLEANUP
GOTO END :NO_MACHINE
ECHO.
ECHO ERROR: MACHINE variable not set
ECHO Set MACHINE in AUTOEXEC.BAT: SET MACHINE=TS-4R
ECHO.
PAUSE
GOTO CLEANUP
REM ================================================================== :NO_T_DRIVE
REM HELPER SUBROUTINES ECHO.
REM ================================================================== ECHO ERROR: T: drive not available
ECHO Run: C:\STARTNET.BAT
ECHO.
PAUSE
GOTO CLEANUP
:CHECK_COMMON_FILE :CLEANUP
REM Flag that network files exist (DOS 6.22 cannot extract filename from path)
REM Simply mark updates as available if any network file is found
SET COMMON=FOUND
GOTO END_SUBROUTINE
:COUNT_FILE
REM Flag that machine-specific files exist
SET MACHINEFILES=FOUND
GOTO END_SUBROUTINE
:END_SUBROUTINE
REM Return point for all subroutines (replaces :EOF)
REM ==================================================================
REM CLEANUP AND EXIT
REM ==================================================================
:END
REM Clean up environment variables
SET COMMON= SET COMMON=
SET MACHINEFILES= SET MACHINEFILES=
SET SYSFILE= SET SYSFILE=
SET HASUPDATES= SET HASUPDATES=
SET NETFILE=
SET FILENAME=

View File

@@ -1,10 +1,7 @@
@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.1 - Added logging, machine verification REM Version: 3.2 - DOS 6.22 compatible
REM Last modified: 2026-01-21 REM Last modified: 2026-01-21
REM
REM IMPORTANT: Test results go to T:\%MACHINE%\LOGS\*LOG (machine-specific)
REM This prevents overwriting data from other machines
REM Verify MACHINE variable is set REM Verify MACHINE variable is set
IF "%MACHINE%"=="" GOTO NO_MACHINE IF "%MACHINE%"=="" GOTO NO_MACHINE
@@ -15,20 +12,11 @@ IF NOT EXIST T:\*.* GOTO NO_DRIVE
REM Verify machine folder exists REM Verify machine folder exists
IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER
REM Start logging ECHO ........................................
ECHO CTONW.BAT v3.1 > C:\ATE\CTONW.LOG ECHO Archiving datalog files to network...
ECHO CTONW.BAT v3.2 > C:\ATE\CTONW.LOG
ECHO Machine: %MACHINE% >> C:\ATE\CTONW.LOG ECHO Machine: %MACHINE% >> C:\ATE\CTONW.LOG
ECHO Date: %DATE% %TIME% >> C:\ATE\CTONW.LOG ECHO Copying from C:\ATE\ to T:\%MACHINE%\LOGS\ >> C:\ATE\CTONW.LOG
ECHO Target: T:\%MACHINE%\LOGS >> C:\ATE\CTONW.LOG
ECHO. >> C:\ATE\CTONW.LOG
REM Display banner
ECHO.
ECHO ==============================================================
ECHO Upload Test Results: %MACHINE%
ECHO Destination: T:\%MACHINE%\LOGS
ECHO ==============================================================
ECHO.
REM Check for ATE directory REM Check for ATE directory
IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE
@@ -44,78 +32,50 @@ 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\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG
IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG
ECHO [1/4] Uploading test logs... IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG
ECHO [1/4] Test logs: >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG
IF EXIST C:\ATE\5BLOG\*.* COPY C:\ATE\5BLOG\*.* T:\%MACHINE%\LOGS\5BLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG
IF EXIST C:\ATE\7BLOG\*.* COPY C:\ATE\7BLOG\*.* T:\%MACHINE%\LOGS\7BLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG
IF EXIST C:\ATE\8BLOG\*.* COPY C:\ATE\8BLOG\*.* T:\%MACHINE%\LOGS\8BLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG
IF EXIST C:\ATE\DSCLOG\*.* COPY C:\ATE\DSCLOG\*.* T:\%MACHINE%\LOGS\DSCLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG
IF EXIST C:\ATE\HVLOG\*.* COPY C:\ATE\HVLOG\*.* T:\%MACHINE%\LOGS\HVLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG
IF EXIST C:\ATE\PWRLOG\*.* COPY C:\ATE\PWRLOG\*.* T:\%MACHINE%\LOGS\PWRLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG
IF EXIST C:\ATE\SCTLOG\*.* COPY C:\ATE\SCTLOG\*.* T:\%MACHINE%\LOGS\SCTLOG >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG
IF EXIST C:\ATE\VASLOG\*.* COPY C:\ATE\VASLOG\*.* T:\%MACHINE%\LOGS\VASLOG >> C:\ATE\CTONW.LOG
ECHO Done
ECHO.
REM Ensure Reports directory exists ECHO Archiving work-order report files to network...
IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports
IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports
ECHO [2/4] Uploading work-order reports... ECHO Archiving log file to network...
ECHO [2/4] Reports: >> C:\ATE\CTONW.LOG IF EXIST C:\ATE\*.LOG COPY C:\ATE\*.LOG T:\%MACHINE%
IF EXIST C:\Reports\*.txt COPY C:\Reports\*.txt T:\%MACHINE%\Reports >> C:\ATE\CTONW.LOG
ECHO Done
ECHO.
ECHO [3/4] Uploading batch files... ECHO Network archiving of datalog files done!
ECHO [3/4] Batch files: >> C:\ATE\CTONW.LOG ECHO ........................................
IF NOT EXIST T:\%MACHINE%\ProdSW\*.* MD T:\%MACHINE%\ProdSW GOTO END
IF EXIST C:\BAT\*.BAT COPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW >> C:\ATE\CTONW.LOG
ECHO Done
ECHO.
ECHO [4/4] Uploading log file...
ECHO [4/4] Log file: >> C:\ATE\CTONW.LOG
IF EXIST C:\ATE\*.LOG COPY C:\ATE\*.LOG T:\%MACHINE% >> C:\ATE\CTONW.LOG
ECHO Done
ECHO.
ECHO Complete >> C:\ATE\CTONW.LOG
GOTO DONE
:SKIP_ATE :SKIP_ATE
ECHO [INFO] No C:\ATE directory - skipping ECHO No C:\ATE directory - skipping
ECHO.
:DONE
ECHO ==============================================================
ECHO Upload Complete: %MACHINE%
ECHO ==============================================================
ECHO.
GOTO END GOTO END
:NO_MACHINE :NO_MACHINE
ECHO. ECHO ........................................
ECHO [ERROR] MACHINE variable not set ECHO ERROR: MACHINE variable not set
ECHO. ECHO Run DEPLOY.BAT or ATESYNC first
ECHO This prevents uploading to wrong folder. ECHO ........................................
ECHO Run DEPLOY.BAT or ATESYNC first.
ECHO.
PAUSE PAUSE
GOTO END GOTO END
:NO_DRIVE :NO_DRIVE
ECHO [ERROR] T: drive not available ECHO ERROR: T: drive not available
ECHO Run C:\STARTNET.BAT first ECHO Run C:\STARTNET.BAT first
PAUSE PAUSE
GOTO END GOTO END
:NO_FOLDER :NO_FOLDER
ECHO. ECHO ........................................
ECHO [ERROR] Machine folder T:\%MACHINE% not found ECHO ERROR: Machine folder T:\%MACHINE% not found
ECHO. ECHO Run ATESYNC to create it first
ECHO Run ATESYNC to create it, or check MACHINE variable. ECHO ........................................
ECHO Current MACHINE=%MACHINE%
ECHO.
PAUSE PAUSE
GOTO END GOTO END

View File

@@ -1,8 +1,8 @@
@ECHO OFF @ECHO OFF
REM DOSTEST.BAT - Test DOS batch file deployment REM DOSTEST.BAT - Test DOS batch file deployment
REM Run this on the DOS machine after deploying new files REM Run this on the DOS machine after deploying new files
REM Version: 1.1 - Fixed drive test for DOS 6.22 reliability REM Version: 1.2 - DOS 6.22 compatible (removed brackets, 2>NUL, NUL checks)
REM Last modified: 2026-01-20 REM Last modified: 2026-01-21
ECHO. ECHO.
ECHO ============================================================== ECHO ==============================================================
@@ -14,14 +14,14 @@ REM ==================================================================
REM TEST 1: Check MACHINE variable REM TEST 1: Check MACHINE variable
REM ================================================================== REM ==================================================================
ECHO [TEST 1] Checking MACHINE variable... ECHO (TEST 1) Checking MACHINE variable...
IF "%MACHINE%"=="" GOTO TEST1_FAIL IF "%MACHINE%"=="" GOTO TEST1_FAIL
ECHO [OK] MACHINE=%MACHINE% ECHO OK: MACHINE=%MACHINE%
GOTO TEST2 GOTO TEST2
:TEST1_FAIL :TEST1_FAIL
ECHO [FAIL] MACHINE variable not set ECHO FAIL: MACHINE variable not set
ECHO Fix: Add "SET MACHINE=TS-4R" to C:\AUTOEXEC.BAT ECHO Fix: Add "SET MACHINE=TS-4R" to C:\AUTOEXEC.BAT
ECHO. ECHO.
PAUSE PAUSE
@@ -33,55 +33,39 @@ REM ==================================================================
:TEST2 :TEST2
ECHO. ECHO.
ECHO [TEST 2] Checking required files... ECHO (TEST 2) Checking required files...
IF NOT EXIST C:\AUTOEXEC.BAT ECHO [FAIL] C:\AUTOEXEC.BAT missing IF NOT EXIST C:\AUTOEXEC.BAT ECHO FAIL: C:\AUTOEXEC.BAT missing
IF EXIST C:\AUTOEXEC.BAT ECHO [OK] C:\AUTOEXEC.BAT exists IF EXIST C:\AUTOEXEC.BAT ECHO OK: C:\AUTOEXEC.BAT exists
IF NOT EXIST C:\STARTNET.BAT ECHO [FAIL] C:\STARTNET.BAT missing IF NOT EXIST C:\STARTNET.BAT ECHO FAIL: C:\STARTNET.BAT missing
IF EXIST C:\STARTNET.BAT ECHO [OK] C:\STARTNET.BAT exists IF EXIST C:\STARTNET.BAT ECHO OK: C:\STARTNET.BAT exists
IF NOT EXIST C:\BATCH\UPDATE.BAT ECHO [FAIL] C:\BATCH\UPDATE.BAT missing IF NOT EXIST C:\BAT\*.* ECHO WARN: C:\BAT directory missing - run MD C:\BAT
IF EXIST C:\BATCH\UPDATE.BAT ECHO [OK] C:\BATCH\UPDATE.BAT exists IF EXIST C:\BAT\*.* ECHO OK: C:\BAT directory exists
IF NOT EXIST C:\BATCH\NUL ECHO [WARN] C:\BATCH directory missing - run MD C:\BATCH
IF EXIST C:\BATCH\NUL ECHO [OK] C:\BATCH directory exists
REM ================================================================== REM ==================================================================
REM TEST 3: Check PATH variable REM TEST 3: Check PATH variable
REM ================================================================== REM ==================================================================
ECHO. ECHO.
ECHO [TEST 3] Checking PATH... ECHO (TEST 3) Checking PATH...
ECHO PATH=%PATH% ECHO PATH=%PATH%
REM Check if C:\BATCH is in PATH (simple check - look for BATCH string)
ECHO %PATH% | FIND /I "BATCH" > NUL
IF ERRORLEVEL 1 GOTO TEST3_FAIL
ECHO [OK] C:\BATCH is in PATH
GOTO TEST4
:TEST3_FAIL
ECHO [WARN] C:\BATCH not in PATH
ECHO Fix: Add "SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\" to AUTOEXEC.BAT
GOTO TEST4
REM ================================================================== REM ==================================================================
REM TEST 4: Check T: drive REM TEST 4: Check T: drive
REM ================================================================== REM ==================================================================
:TEST4
ECHO. ECHO.
ECHO [TEST 4] Checking T: drive... ECHO (TEST 4) Checking T: drive...
REM DOS 6.22: Direct file test is most reliable
IF NOT EXIST T:\*.* GOTO TEST4_FAIL IF NOT EXIST T:\*.* GOTO TEST4_FAIL
ECHO [OK] T: drive accessible ECHO OK: T: drive accessible
GOTO TEST5 GOTO TEST5
:TEST4_FAIL :TEST4_FAIL
ECHO [FAIL] T: drive not accessible ECHO FAIL: T: drive not accessible
ECHO Fix: Run C:\STARTNET.BAT to map network drives ECHO Fix: Run C:\STARTNET.BAT to map network drives
GOTO TEST5 GOTO TEST5
@@ -91,16 +75,15 @@ REM ==================================================================
:TEST5 :TEST5
ECHO. ECHO.
ECHO [TEST 5] Checking X: drive... ECHO (TEST 5) Checking X: drive...
REM DOS 6.22: Direct file test is most reliable
IF NOT EXIST X:\*.* GOTO TEST5_FAIL IF NOT EXIST X:\*.* GOTO TEST5_FAIL
ECHO [OK] X: drive accessible ECHO OK: X: drive accessible
GOTO TEST6 GOTO TEST6
:TEST5_FAIL :TEST5_FAIL
ECHO [FAIL] X: drive not accessible ECHO FAIL: X: drive not accessible
ECHO Fix: Run C:\STARTNET.BAT to map network drives ECHO Fix: Run C:\STARTNET.BAT to map network drives
GOTO TEST6 GOTO TEST6
@@ -110,7 +93,7 @@ REM ==================================================================
:TEST6 :TEST6
ECHO. ECHO.
ECHO [TEST 6] Checking backup directory creation... ECHO (TEST 6) Checking backup directory creation...
IF "%MACHINE%"=="" GOTO TEST6_SKIP IF "%MACHINE%"=="" GOTO TEST6_SKIP
@@ -118,28 +101,28 @@ REM Only test if T: is available
IF NOT EXIST T:\*.* GOTO TEST6_SKIP IF NOT EXIST T:\*.* GOTO TEST6_SKIP
REM Try to create machine directory REM Try to create machine directory
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE% 2>NUL IF NOT EXIST T:\%MACHINE%\*.* MD T:\%MACHINE%
IF NOT EXIST T:\%MACHINE%\NUL GOTO TEST6_FAIL IF NOT EXIST T:\%MACHINE%\*.* GOTO TEST6_FAIL
REM Try to create backup subdirectory REM Try to create test subdirectory
IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST 2>NUL IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST
IF NOT EXIST T:\%MACHINE%\TEST\*.* GOTO TEST6_FAIL IF NOT EXIST T:\%MACHINE%\TEST\*.* GOTO TEST6_FAIL
ECHO [OK] Can create T:\%MACHINE%\TEST ECHO OK: Can create T:\%MACHINE%\TEST
ECHO [OK] Backup directory structure works ECHO OK: Backup directory structure works
REM Clean up test directory REM Clean up test directory
RD T:\%MACHINE%\TEST 2>NUL RD T:\%MACHINE%\TEST
GOTO SUMMARY GOTO SUMMARY
:TEST6_FAIL :TEST6_FAIL
ECHO [FAIL] Cannot create directory on T: drive ECHO FAIL: Cannot create directory on T: drive
ECHO Check: T: drive is writable ECHO Check: T: drive is writable
GOTO SUMMARY GOTO SUMMARY
:TEST6_SKIP :TEST6_SKIP
ECHO [SKIP] Cannot test (T: unavailable or MACHINE not set) ECHO SKIP: Cannot test (T: unavailable or MACHINE not set)
GOTO SUMMARY GOTO SUMMARY
REM ================================================================== REM ==================================================================
@@ -153,14 +136,11 @@ ECHO Test Summary
ECHO ============================================================== ECHO ==============================================================
ECHO. ECHO.
REM Count passes and fails would be complex in DOS batch
REM Just show overall status
IF "%MACHINE%"=="" GOTO SUMMARY_FAIL IF "%MACHINE%"=="" GOTO SUMMARY_FAIL
IF NOT EXIST C:\BATCH\UPDATE.BAT GOTO SUMMARY_FAIL IF NOT EXIST C:\BAT\*.* GOTO SUMMARY_FAIL
IF NOT EXIST T:\*.* GOTO SUMMARY_FAIL IF NOT EXIST T:\*.* GOTO SUMMARY_FAIL
ECHO [OK] All critical tests passed ECHO OK: All critical tests passed
ECHO. ECHO.
ECHO Configuration appears correct. ECHO Configuration appears correct.
ECHO. ECHO.
@@ -170,7 +150,7 @@ ECHO.
GOTO END GOTO END
:SUMMARY_FAIL :SUMMARY_FAIL
ECHO [FAIL] One or more tests failed ECHO FAIL: One or more tests failed
ECHO. ECHO.
ECHO Please fix the failed tests before running UPDATE ECHO Please fix the failed tests before running UPDATE
ECHO. ECHO.
@@ -178,7 +158,7 @@ ECHO Common fixes:
ECHO 1. Reboot machine (load AUTOEXEC.BAT changes) ECHO 1. Reboot machine (load AUTOEXEC.BAT changes)
ECHO 2. Run C:\STARTNET.BAT (map network drives) ECHO 2. Run C:\STARTNET.BAT (map network drives)
ECHO 3. Check network cable is connected ECHO 3. Check network cable is connected
ECHO 4. Create C:\BATCH directory: MD C:\BATCH ECHO 4. Create C:\BAT directory: MD C:\BAT
ECHO. ECHO.
:END :END

View File

@@ -6,8 +6,8 @@ REM
REM If machine-name not provided, uses MACHINE environment variable REM If machine-name not provided, uses MACHINE environment variable
REM from AUTOEXEC.BAT REM from AUTOEXEC.BAT
REM REM
REM Version: 2.3 - Fixed XCOPY trailing backslash (DOS 6.22 compatibility) REM Version: 2.4 - DOS 6.22 compatible (removed brackets, fixed NUL checks)
REM Last modified: 2026-01-20 REM Last modified: 2026-01-21
REM ================================================================== REM ==================================================================
REM STEP 1: Determine machine name REM STEP 1: Determine machine name
@@ -18,7 +18,7 @@ IF NOT "%MACHINE%"=="" GOTO USE_ENV
:NO_MACHINE :NO_MACHINE
ECHO. ECHO.
ECHO [ERROR] Machine name not specified ECHO ERROR: Machine name not specified
ECHO. ECHO.
ECHO Usage: UPDATE machine-name ECHO Usage: UPDATE machine-name
ECHO Example: UPDATE TS-4R ECHO Example: UPDATE TS-4R
@@ -47,12 +47,12 @@ ECHO Checking network drive T:...
REM DOS 6.22: Direct file test is most reliable REM DOS 6.22: Direct file test is most reliable
IF NOT EXIST T:\*.* GOTO NO_T_DRIVE IF NOT EXIST T:\*.* GOTO NO_T_DRIVE
ECHO [OK] T: drive accessible ECHO OK: T: drive accessible
GOTO START_BACKUP GOTO START_BACKUP
:NO_T_DRIVE :NO_T_DRIVE
ECHO. ECHO.
ECHO [ERROR] T: drive not available ECHO ERROR: T: drive not available
ECHO. ECHO.
ECHO Network drive T: must be mapped to \\D2TESTNAS\test ECHO Network drive T: must be mapped to \\D2TESTNAS\test
ECHO. ECHO.
@@ -79,15 +79,15 @@ ECHO Target: T:\%MACHINE%\BACKUP
ECHO. ECHO.
REM Create machine directory if it doesn't exist REM Create machine directory if it doesn't exist
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE% IF NOT EXIST T:\%MACHINE%\*.* MD T:\%MACHINE%
REM Create backup directory REM Create backup directory
IF NOT EXIST T:\%MACHINE%\BACKUP\NUL MD T:\%MACHINE%\BACKUP IF NOT EXIST T:\%MACHINE%\BACKUP\*.* MD T:\%MACHINE%\BACKUP
REM Check if backup directory was created successfully REM Check if backup directory was created successfully
IF NOT EXIST T:\%MACHINE%\BACKUP\*.* GOTO BACKUP_DIR_ERROR IF NOT EXIST T:\%MACHINE%\BACKUP\*.* GOTO BACKUP_DIR_ERROR
ECHO [OK] Backup directory ready ECHO OK: Backup directory ready
ECHO. ECHO.
REM ================================================================== REM ==================================================================
@@ -124,7 +124,7 @@ IF ERRORLEVEL 2 GOTO USER_ABORT
IF ERRORLEVEL 1 GOTO NO_FILES IF ERRORLEVEL 1 GOTO NO_FILES
ECHO. ECHO.
ECHO [OK] Backup completed successfully ECHO OK: Backup completed successfully
ECHO. ECHO.
ECHO Files backed up to: T:\%MACHINE%\BACKUP ECHO Files backed up to: T:\%MACHINE%\BACKUP
GOTO END GOTO END
@@ -135,7 +135,7 @@ REM ==================================================================
:BACKUP_DIR_ERROR :BACKUP_DIR_ERROR
ECHO. ECHO.
ECHO [ERROR] Could not create backup directory ECHO ERROR: Could not create backup directory
ECHO Target: T:\%MACHINE%\BACKUP ECHO Target: T:\%MACHINE%\BACKUP
ECHO. ECHO.
ECHO Check: ECHO Check:
@@ -148,7 +148,7 @@ GOTO END
:DISK_ERROR :DISK_ERROR
ECHO. ECHO.
ECHO [ERROR] Disk write error ECHO ERROR: Disk write error
ECHO. ECHO.
ECHO Possible causes: ECHO Possible causes:
ECHO - Target drive is full ECHO - Target drive is full
@@ -160,7 +160,7 @@ GOTO END
:INIT_ERROR :INIT_ERROR
ECHO. ECHO.
ECHO [ERROR] Backup initialization failed ECHO ERROR: Backup initialization failed
ECHO. ECHO.
ECHO Possible causes: ECHO Possible causes:
ECHO - Insufficient memory ECHO - Insufficient memory
@@ -172,7 +172,7 @@ GOTO END
:USER_ABORT :USER_ABORT
ECHO. ECHO.
ECHO [WARNING] Backup terminated by user (Ctrl+C) ECHO WARNING: Backup terminated by user (Ctrl+C)
ECHO. ECHO.
ECHO Backup may be incomplete! ECHO Backup may be incomplete!
ECHO. ECHO.
@@ -181,7 +181,7 @@ GOTO END
:NO_FILES :NO_FILES
ECHO. ECHO.
ECHO [WARNING] No files found to copy ECHO WARNING: No files found to copy
ECHO. ECHO.
ECHO This may indicate: ECHO This may indicate:
ECHO - All files are already up to date (/D option) ECHO - All files are already up to date (/D option)