fix: Replace NUL device references with DOS 6.22 compatible tests
Critical fix for DOS 6.22 compatibility - NUL is a reserved device name in both DOS and Windows and cannot be used as a file/directory name. Problem: - "T: 2>NUL" attempts to create a file called "NUL" (not allowed) - "IF NOT EXIST T:\NUL" tests for NUL device (unreliable) - "IF NOT EXIST path\NUL" treats NUL as filename (invalid) Solution - Replaced with proper DOS 6.22 tests: - "T: 2>NUL" → "DIR T:\ >nul" (test drive access via directory listing) - "IF NOT EXIST T:\NUL" → "IF NOT EXIST T:\*.*" (test for any files) - "IF NOT EXIST path\NUL" → "IF NOT EXIST path\*.*" (test directory) Note: Using lowercase "nul" for output redirection is acceptable as it redirects to the NUL device, but NUL as a filename/path is invalid. Files updated: - DEPLOY.BAT: Fixed drive and directory tests - UPDATE.BAT: Fixed drive and directory tests - NWTOC.BAT: Fixed drive and directory tests - CTONW.BAT: Fixed drive and directory tests - CHECKUPD.BAT: Fixed drive and directory tests - DOSTEST.BAT: Fixed drive and directory tests Created fix-nul-references.ps1: - Automated script to find and fix NUL references - Preserves CRLF line endings - Updates all BAT files consistently Created monitoring scripts: - monitor-sync-status.ps1: Periodic sync monitoring - quick-sync-check.ps1: Quick AD2-to-NAS sync status check Verification: - All BAT files maintain CRLF line terminators - File sizes increased slightly (4-8 bytes) due to pattern changes - DOS 6.22 compatible wildcard tests (*.*) used throughout Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,12 +34,12 @@ REM ==================================================================
|
||||
|
||||
:CHECK_DRIVE
|
||||
REM Test T: drive access
|
||||
T: 2>NUL
|
||||
DIR T:\ >nul
|
||||
IF ERRORLEVEL 1 GOTO NO_T_DRIVE
|
||||
C:
|
||||
|
||||
REM Double-check with NUL device test
|
||||
IF NOT EXIST T:\NUL GOTO NO_T_DRIVE
|
||||
IF NOT EXIST T:\*.* GOTO NO_T_DRIVE
|
||||
GOTO START_CHECK
|
||||
|
||||
:NO_T_DRIVE
|
||||
@@ -192,7 +192,7 @@ IF NOT EXIST C:\BAT\%FILENAME% GOTO :EOF
|
||||
|
||||
REM Both files exist - compare using XCOPY /D
|
||||
REM Create temp directory for test
|
||||
IF NOT EXIST C:\TEMP\NUL MD C:\TEMP
|
||||
IF NOT EXIST C:\TEMP\*.* MD C:\TEMP
|
||||
|
||||
REM Try to copy with /D (only if newer)
|
||||
XCOPY %NETFILE% C:\TEMP\ /D /Y >NUL 2>NUL
|
||||
|
||||
Reference in New Issue
Block a user