Files
claudetools/projects/dataforth-dos/deployment-scripts/fix-pause-syntax.ps1

62 lines
1.9 KiB
PowerShell

# Fix PAUSE command syntax - DOS 6.22 does not accept message parameters
# Convert "PAUSE message..." to "ECHO message..." followed by "PAUSE"
$BATFiles = Get-ChildItem *.BAT | Where-Object {
$_.Name -notlike "*_FROM_*" -and
$_.Name -notlike "*_TEST*" -and
$_.Name -notlike "*_VERIFY*" -and
$_.Name -notlike "*_CHECK*" -and
$_.Name -notlike "*_MONITOR*"
}
Write-Host "[INFO] Fixing PAUSE syntax (DOS 6.22 does not accept message)" -ForegroundColor Cyan
Write-Host ""
$TotalFixed = 0
foreach ($File in $BATFiles) {
Write-Host "Processing: $($File.Name)" -ForegroundColor White
$Lines = Get-Content $File.FullName
$Modified = $false
$NewLines = @()
for ($i = 0; $i -lt $Lines.Count; $i++) {
$Line = $Lines[$i]
# Check if line starts with PAUSE followed by text
if ($Line -match '^(\s*)PAUSE\s+(.+)$') {
$Indent = $Matches[1]
$Message = $Matches[2]
# Replace with ECHO + PAUSE
$NewLines += "${Indent}ECHO $Message"
$NewLines += "${Indent}PAUSE"
$Modified = $true
$TotalFixed++
} else {
$NewLines += $Line
}
}
if ($Modified) {
$NewLines | Set-Content $File.FullName
Write-Host " [OK] Fixed PAUSE syntax" -ForegroundColor Green
} else {
Write-Host " [OK] No PAUSE issues found" -ForegroundColor Green
}
}
Write-Host ""
Write-Host "[SUCCESS] Fixed $TotalFixed PAUSE commands across all files" -ForegroundColor Green
Write-Host ""
Write-Host "DOS 6.22 PAUSE syntax:" -ForegroundColor Cyan
Write-Host " CORRECT:" -ForegroundColor Green
Write-Host " ECHO Press any key to continue..." -ForegroundColor White
Write-Host " PAUSE" -ForegroundColor White
Write-Host ""
Write-Host " INCORRECT (Windows NT/2000+):" -ForegroundColor Red
Write-Host " PAUSE Press any key to continue..." -ForegroundColor Red
Write-Host ""