PSScriptAnalyzer
PSScriptAnalyzer copied to clipboard
Accept `-Fix` for `-ScriptDefinition`
Summary of the new feature
Currently the -Fix
parameter is mutual exclusive with the -ScriptDefinition
parameter:
Invoke-ScriptAnalyzer -ScriptDefinition 'GCI *' -Fix
Invoke-ScriptAnalyzer: Parameter set cannot be resolved using the specified named parameters. One or more parameters issued cannot; be used together or an insufficient number of parameters were provided.
Proposed technical implementation details (optional)
When both ( -Fix
and -ScriptDefinition
) parameters, are supplied, I would expect to get a fixed ScriptDefinition
back (instead of a [Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.DiagnosticRecord]
).
This way, it would be easier to (pester) test a rule with SuggestedCorrections
.
(You might of cause check the SuggestedCorrections
property but that will not confirm it has been correctly inserted in the script.)
Besides it will allow to fix scripts by creating a fixed copy rather than make sure that you have a backup of your files when using this parameter.
Wishful thinking:
Get-Content *.ps1 | Foreach-Object { Invoke-ScriptAnalyzer -ScriptDefinition $_ | Set-Content "Fixed\$($_.Name)" }
What is the latest version of PSScriptAnalyzer at the point of writing
1.21.0
You will find this to be hard to do because of the current functional structure but happy for you to give it a go