Updated check-xml-files.ps1

This commit is contained in:
Markus Fleschutz 2025-05-21 13:02:46 +02:00
parent 6edf5cc843
commit a7b7bb8d1e

View File

@ -4,7 +4,7 @@
.DESCRIPTION
This PowerShell script verifies any XML file (with suffix .xml) in the given directory tree for validity.
.PARAMETER path
Specifies the path to the directory tree (current working dir by default)
Specifies the file path to the directory tree (current working dir by default)
.EXAMPLE
PS> ./check-xml-files.ps1 C:\Windows
...
@ -20,20 +20,21 @@ param([string]$path = "$PWD")
try {
$stopWatch = [system.diagnostics.stopwatch]::startNew()
$path = Resolve-Path "$path"
Write-Progress "Scanning any XML file within $path..."
[int]$valid = [int]$invalid = 0
Get-ChildItem -path "$path" -attributes !Directory -recurse -force | Where-Object { $_.Name -like "*.xml" } | Foreach-Object {
& $PSScriptRoot/check-xml-file.ps1 "$($_.FullName)"
if ($lastExitCode -eq 0) { $valid++ } else { $invalid++ }
}
Write-Progress -completed "Done."
[int]$total = $valid + $invalid
[int]$elapsed = $stopWatch.Elapsed.TotalSeconds
"✅ Checked $total XML files ($invalid invalid, $valid valid) within 📂$path in $elapsed sec"
if ($invalid -ne 0) {
"⚠️ $invalid XML files are INVALID, $valid are valid (took $($elapsed)s)."
} else {
"✅ All $valid XML files are valid (took $($elapsed)s)."
}
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
"⚠️ Error: $($Error[0])"
exit 1
}