Simplified and Improved the Exclude List Validation Step in 'Invoke-Preprocessing.ps1' Script Tool

This commit is contained in:
Mr.k 2024-08-23 00:30:24 +03:00
parent 558c634b70
commit 895a95ccf6
No known key found for this signature in database

View File

@ -75,22 +75,30 @@
$count = $ExcludedFiles.Count $count = $ExcludedFiles.Count
# Make sure there's a * at the end of folders in ExcludedFiles list # Make sure there's a * at the end of folders in ExcludedFiles list
if ($count -gt 0) { for ($i = 0; $i -lt $count; $i++) {
for ($i = 0; $i -lt $count; $i++) { $excludedFile = $ExcludedFiles[$i]
$excludedFile = $ExcludedFiles[$i] $isFolder = ($excludedFile) -match '\\$'
$isFolder = ($excludedFile) -match '\\$' if ($isFolder) { $ExcludedFiles[$i] = $excludedFile + '*' }
if ($isFolder) { $ExcludedFiles[$i] = $excludedFile + '*' }
}
} }
# Validate the ExcludedFiles List before continuing on, # Validate the ExcludedFiles List before continuing on,
# that's if there's a list in the first place, and '-SkipExcludedFilesValidation' was not provided. # that's if there's a list in the first place, and '-SkipExcludedFilesValidation' was not provided.
if ((-NOT ($count -eq 0)) -AND (-NOT $SkipExcludedFilesValidation)) { if (-not $SkipExcludedFilesValidation) {
for ($i = 0; $i -lt $count; $i++) { for ($i = 0; $i -lt $count; $i++) {
$excludedFile = $ExcludedFiles[$i] $excludedFile = $ExcludedFiles[$i]
$filePath = "$(($WorkingDir -replace ('\\$', '')) + '\' + ($excludedFile -replace ('\.\\', '')))" $filePath = "$(($WorkingDir -replace ('\\$', '')) + '\' + ($excludedFile -replace ('\.\\', '')))"
if (-NOT (Get-ChildItem -Recurse -Path "$filePath" -File)) {
$failedFilesList += "'$filePath', " # Handle paths with wildcards in a different implementation
$matches = ($filePath) -match '^.*?\*'
if ($matches) {
if (-NOT (Get-ChildItem -Recurse -Path "$filePath" -File)) {
$failedFilesList += "'$filePath', "
}
} else {
if (-NOT (Test-Path -Path "$filePath")) {
$failedFilesList += "'$filePath', "
}
} }
} }
$failedFilesList = $failedFilesList -replace (',\s*$', '') $failedFilesList = $failedFilesList -replace (',\s*$', '')