62 lines
1.9 KiB
PowerShell
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 ""
|