Complete project organization: move all DOS files to projects/dataforth-dos, create client folders, update Claude config
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
# UPDATE.BAT Fix - XCOPY Parameter Error
|
||||
|
||||
**Date:** 2026-01-20
|
||||
**Version:** 2.0 → 2.1
|
||||
**Issue:** "Invalid number of parameters" error during backup
|
||||
**Severity:** HIGH - Prevents all backups from completing
|
||||
|
||||
---
|
||||
|
||||
## Problem Description
|
||||
|
||||
When running UPDATE.BAT on DOS 6.22 machines, the backup fails immediately with:
|
||||
|
||||
```
|
||||
Starting backup...
|
||||
This may take several minutes depending on file count.
|
||||
|
||||
Invalid number of parameters
|
||||
0 File(s) copied
|
||||
|
||||
[ERROR] Backup initialization failed
|
||||
|
||||
Possible causes:
|
||||
- Insufficient memory
|
||||
- Invalid path
|
||||
- Target drive not accessible
|
||||
```
|
||||
|
||||
**Affected Machine:** TS-4R (and potentially all DOS machines)
|
||||
|
||||
---
|
||||
|
||||
## Root Cause
|
||||
|
||||
**Line 123 of UPDATE.BAT v2.0:**
|
||||
```batch
|
||||
XCOPY C:\*.* T:\%MACHINE%\BACKUP /S /E /Y /D /H /K /C
|
||||
```
|
||||
|
||||
The `/D` switch in DOS 6.22 requires a date parameter in format `/D:mm-dd-yy`.
|
||||
|
||||
**DOS 6.22 XCOPY Syntax:**
|
||||
- `/D` alone is INVALID
|
||||
- `/D:01-20-26` is VALID (copy files modified on or after Jan 20, 2026)
|
||||
|
||||
**Modern XCOPY (Windows 95+):**
|
||||
- `/D` alone is VALID (copy only newer files based on file timestamp comparison)
|
||||
|
||||
The version 2.0 UPDATE.BAT was written with modern XCOPY syntax, not DOS 6.22 syntax.
|
||||
|
||||
---
|
||||
|
||||
## The Fix
|
||||
|
||||
**Removed invalid `/D` flag from XCOPY command:**
|
||||
|
||||
```batch
|
||||
XCOPY C:\*.* T:\%MACHINE%\BACKUP\ /S /E /Y /H /K /C
|
||||
```
|
||||
|
||||
**Changes:**
|
||||
1. Removed `/D` flag (requires date parameter in DOS 6.22)
|
||||
2. Added trailing backslash to destination path for clarity
|
||||
3. Removed incomplete comment line about `/Q` (quiet mode - not available in DOS 6.22)
|
||||
4. Added documentation notes explaining DOS 6.22 limitations
|
||||
|
||||
---
|
||||
|
||||
## Testing Required
|
||||
|
||||
Before full rollout, test on TS-4R:
|
||||
|
||||
1. Copy fixed UPDATE.BAT to AD2:
|
||||
```powershell
|
||||
Copy-Item D:\ClaudeTools\UPDATE.BAT \\192.168.0.6\C$\Shares\test\COMMON\ProdSW\
|
||||
```
|
||||
|
||||
2. Wait 15 minutes for AD2→NAS sync
|
||||
|
||||
3. On TS-4R, run:
|
||||
```batch
|
||||
T:
|
||||
CD \COMMON\ProdSW
|
||||
XCOPY UPDATE.BAT C:\BAT\ /Y
|
||||
C:
|
||||
CD \BAT
|
||||
UPDATE
|
||||
```
|
||||
|
||||
4. Verify backup completes successfully
|
||||
|
||||
5. Check T:\TS-4R\BACKUP\ for copied files
|
||||
|
||||
---
|
||||
|
||||
## Deployment Plan
|
||||
|
||||
**Pilot:** TS-4R (already experiencing issue)
|
||||
**Full Rollout:** All ~30 DOS machines after successful pilot
|
||||
|
||||
**Deployment Method:**
|
||||
1. Copy UPDATE.BAT v2.1 to AD2: `C:\Shares\test\COMMON\ProdSW\`
|
||||
2. AD2→NAS sync happens automatically (every 15 minutes)
|
||||
3. Machines will get update on next NWTOC run or manual update
|
||||
|
||||
**Alternative - Immediate Deployment:**
|
||||
Users can manually update by running:
|
||||
```batch
|
||||
C:
|
||||
CD \BAT
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DOS 6.22 Compatibility Notes
|
||||
|
||||
**XCOPY Switches NOT Available in DOS 6.22:**
|
||||
- `/Q` - Quiet mode (added in Windows 95)
|
||||
- `/D` - Copy only newer (requires `/D:mm-dd-yy` in DOS 6.22)
|
||||
- `/EXCLUDE:file` - Exclusion lists (added in Windows NT)
|
||||
|
||||
**Other DOS 6.22 Limitations:**
|
||||
- No `IF /I` (case-insensitive compare)
|
||||
- No `FOR /F` loops
|
||||
- No `%COMPUTERNAME%` variable
|
||||
- No `PUSHD`/`POPD` commands
|
||||
- Maximum environment variable size: 256 bytes
|
||||
|
||||
---
|
||||
|
||||
## Files Changed
|
||||
|
||||
- `D:\ClaudeTools\UPDATE.BAT` - Version 2.0 → 2.1
|
||||
- Line 113-123: Removed `/D` flag from XCOPY
|
||||
- Line 9-10: Updated version and date
|
||||
- Added DOS 6.22 compatibility notes in comments
|
||||
|
||||
---
|
||||
|
||||
## Related Issues
|
||||
|
||||
**Previous DOS Compatibility Fixes (2026-01-19):**
|
||||
1. CTONW.BAT v1.0 → v1.1 - Fixed missing /S flag for subdirectories
|
||||
2. CTONW.BAT v1.1 → v1.2 - Fixed test data routing (ProdSW vs LOGS)
|
||||
3. DEPLOY.BAT v1.0 → v2.0 - Complete DOS 6.22 overhaul
|
||||
|
||||
**This Fix (2026-01-20):**
|
||||
4. UPDATE.BAT v2.0 → v2.1 - Fixed /D parameter error
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
Backup is successful when:
|
||||
- No "Invalid number of parameters" error
|
||||
- Files are copied (> 0 files copied)
|
||||
- "[OK] Backup completed successfully" message appears
|
||||
- Files visible in T:\%MACHINE%\BACKUP\
|
||||
|
||||
---
|
||||
|
||||
## Rollback Plan
|
||||
|
||||
If UPDATE.BAT v2.1 fails, revert to manual backup method:
|
||||
```batch
|
||||
XCOPY C:\*.* T:\TS-4R\BACKUP\ /S /E /Y /H /K /C
|
||||
```
|
||||
|
||||
Or use previous version (if it was working):
|
||||
```batch
|
||||
XCOPY C:\*.* T:\TS-4R\BACKUP\ /S /E /Y /H /K
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Status:** Ready for deployment to AD2
|
||||
**Next Step:** Copy to AD2 and test on TS-4R
|
||||
Reference in New Issue
Block a user