30
30
Include a legend explaining the color mapping
31
31
32
32
. EXAMPLE
33
- PS C:\> Show-PSMDSyntax -CommandText "New-Item -Path 'c:\temp\newfile.txt'" -Mode "Validate"
33
+ PS C:\> Show-PSMDSyntax -CommandText "New-Item -Path 'c:\temp\newfile.txt'"
34
34
35
35
This will validate all the parameters that have been passed to the Import-D365Bacpac cmdlet.
36
36
All supplied parameters that matches a parameter will be marked with an asterisk.
54
54
55
55
[Parameter (Mandatory = $true , Position = 2 )]
56
56
[ValidateSet (' Validate' , ' ShowParameters' )]
57
- [string ] $Mode ,
57
+ [string ] $Mode = ' Validate ' ,
58
58
59
59
[switch ] $Legend
60
60
)
72
72
# Match to find the command name: Non-Whitespace until the first whitespace
73
73
$commandMatch = ($CommandText | Select-String ' \S+\s*' ).Matches
74
74
75
- if (-not ($null -eq $commandMatch )) {
76
- $commandName = $commandMatch.Value.Trim ()
75
+ if ($null -eq $commandMatch ) {
76
+ Write-PSFMessage - Level Host - Message " The function was unable to extract a valid command name from the supplied command text. Please try again."
77
+ Stop-PSFFunction - Message " Stopping because of missing command name."
78
+ return
79
+ }
80
+
81
+ $commandName = $commandMatch.Value.Trim ()
77
82
78
- $res = Get-Command $commandName - ErrorAction Ignore
83
+ $res = Get-Command $commandName - ErrorAction Ignore
79
84
80
- if (-not ($null -eq $res )) {
85
+ if ($null -eq $res ) {
86
+ Write-PSFMessage - Level Host - Message " The function was unable to get the help of the command. Make sure that the command name is valid and try again."
87
+ Stop-PSFFunction - Message " Stopping because command name didn't return any help."
88
+ return
89
+ }
90
+
81
91
82
- $null = $sbHelp = New-Object System.Text.StringBuilder
83
- $null = $sbParmsNotFound = New-Object System.Text.StringBuilder
92
+ $null = $sbHelp = New-Object System.Text.StringBuilder
93
+ $null = $sbParmsNotFound = New-Object System.Text.StringBuilder
84
94
85
- switch ($Mode ) {
86
- " Validate" {
87
- # Match to find the parameters: Whitespace Dash Non-Whitespace
88
- $inputParameterMatch = ($CommandText | Select-String ' \s{1}[-]\S+' - AllMatches).Matches
95
+ switch ($Mode ) {
96
+ " Validate" {
97
+ # Match to find the parameters: Whitespace Dash Non-Whitespace
98
+ $inputParameterMatch = ($CommandText | Select-String ' \s{1}[-]\S+' - AllMatches).Matches
89
99
90
- if (-not ($null -eq $inputParameterMatch )) {
91
- $inputParameterNames = $inputParameterMatch.Value.Trim (" -" , " " )
92
- }
93
- else {
94
- Write-PSFMessage - Level Host - Message " The function was unable to extract any parameters from the supplied command text. Please try again."
95
- Stop-PSFFunction - Message " Stopping because of missing input parameters."
96
- return
97
- }
100
+ if (-not ($null -eq $inputParameterMatch )) {
101
+ $inputParameterNames = $inputParameterMatch.Value.Trim (" -" , " " )
102
+ }
103
+ else {
104
+ Write-PSFMessage - Level Host - Message " The function was unable to extract any parameters from the supplied command text. Please try again."
105
+ Stop-PSFFunction - Message " Stopping because of missing input parameters."
106
+ return
107
+ }
98
108
99
- $availableParameterNames = (Get-Command $commandName ).Parameters.keys | Where-Object {$commonParameters -NotContains $_ }
100
- $inputParameterNotFound = $inputParameterNames | Where-Object {$availableParameterNames -NotContains $_ }
109
+ $availableParameterNames = (Get-Command $commandName ).Parameters.keys | Where-Object {$commonParameters -NotContains $_ }
110
+ $inputParameterNotFound = $inputParameterNames | Where-Object {$availableParameterNames -NotContains $_ }
101
111
102
- $null = $sbParmsNotFound.AppendLine (" Parameters that <c='em'>don't exists</c>" )
103
- $inputParameterNotFound | ForEach-Object {
104
- $null = $sbParmsNotFound.AppendLine (" <c='$colorParmsNotFound '>$ ( $_ ) </c>" )
105
- }
112
+ $null = $sbParmsNotFound.AppendLine (" Parameters that <c='em'>don't exists</c>" )
113
+ $inputParameterNotFound | ForEach-Object {
114
+ $null = $sbParmsNotFound.AppendLine (" <c='$colorParmsNotFound '>$ ( $_ ) </c>" )
115
+ }
106
116
107
- foreach ($parmSet in (Get-Command $commandName ).ParameterSets) {
108
- $null = $sb = New-Object System.Text.StringBuilder
109
- $null = $sb.AppendLine (" ParameterSet Name: <c='em'>$ ( $parmSet.Name ) </c> - Validated List" )
110
- $null = $sb.Append (" <c='$colorCommandName '>$commandName </c>" )
117
+ foreach ($parmSet in (Get-Command $commandName ).ParameterSets) {
118
+ $null = $sb = New-Object System.Text.StringBuilder
119
+ $null = $sb.AppendLine (" ParameterSet Name: <c='em'>$ ( $parmSet.Name ) </c> - Validated List" )
120
+ $null = $sb.Append (" <c='$colorCommandName '>$commandName </c>" )
111
121
112
- $parmSetParameters = $parmSet.Parameters | Where-Object name -NotIn $commonParameters
122
+ $parmSetParameters = $parmSet.Parameters | Where-Object name -NotIn $commonParameters
113
123
114
- foreach ($parameter in $parmSetParameters ) {
115
- $parmFoundInCommandText = $parameter.Name -In $inputParameterNames
124
+ foreach ($parameter in $parmSetParameters ) {
125
+ $parmFoundInCommandText = $parameter.Name -In $inputParameterNames
116
126
117
- $color = " $colorNonMandatoryParam "
127
+ $color = " $colorNonMandatoryParam "
118
128
119
- if ($parameter.IsMandatory -eq $true ) { $color = " $colorMandatoryParam " }
129
+ if ($parameter.IsMandatory -eq $true ) { $color = " $colorMandatoryParam " }
120
130
121
- $null = $sb.Append (" <c='$color '>-$ ( $parameter.Name ) </c>" )
131
+ $null = $sb.Append (" <c='$color '>-$ ( $parameter.Name ) </c>" )
122
132
123
- if ($parmFoundInCommandText ) {
124
- $color = " $colorFoundAsterisk "
125
- $null = $sb.Append (" <c='$color '>* </c>" )
126
- }
127
- elseif ($parameter.IsMandatory -eq $true ) {
128
- $color = " $colorNotFoundAsterisk "
129
- $null = $sb.Append (" <c='$color '>* </c>" )
130
- }
131
- else {
132
- $null = $sb.Append (" " )
133
- }
134
-
135
- if (-not ($parameter.ParameterType -eq [System.Management.Automation.SwitchParameter ])) {
136
- $null = $sb.Append (" <c='$colParmValue '>PARAMVALUE </c>" )
137
- }
138
- }
133
+ if ($parmFoundInCommandText ) {
134
+ $color = " $colorFoundAsterisk "
135
+ $null = $sb.Append (" <c='$color '>* </c>" )
136
+ }
137
+ elseif ($parameter.IsMandatory -eq $true ) {
138
+ $color = " $colorNotFoundAsterisk "
139
+ $null = $sb.Append (" <c='$color '>* </c>" )
140
+ }
141
+ else {
142
+ $null = $sb.Append (" " )
143
+ }
139
144
140
- $null = $sb .AppendLine ( " " )
141
- Write-PSFMessage - Level Host - Message " $ ( $ sb.ToString () ) "
145
+ if ( -not ( $parameter .ParameterType -eq [ System.Management.Automation.SwitchParameter ])) {
146
+ $null = $ sb.Append ( " <c=' $colParmValue '>PARAMVALUE </c> " )
142
147
}
143
-
144
- $null = $sbHelp.AppendLine (" " )
145
- $null = $sbHelp.AppendLine (" <c='$colorParmsNotFound '>$colorParmsNotFound </c> = Parameter not found" )
146
- $null = $sbHelp.AppendLine (" <c='$colorCommandName '>$colorCommandName </c> = Command Name" )
147
- $null = $sbHelp.AppendLine (" <c='$colorMandatoryParam '>$colorMandatoryParam </c> = Mandatory Parameter" )
148
- $null = $sbHelp.AppendLine (" <c='$colorNonMandatoryParam '>$colorNonMandatoryParam </c> = Optional Parameter" )
149
- $null = $sbHelp.AppendLine (" <c='$colParmValue '>$colParmValue </c> = Parameter value" )
150
- $null = $sbHelp.AppendLine (" <c='$colorFoundAsterisk '>*</c> = Parameter was filled" )
151
- $null = $sbHelp.AppendLine (" <c='$colorNotFoundAsterisk '>*</c> = Mandatory missing" )
152
148
}
149
+
150
+ $null = $sb.AppendLine (" " )
151
+ Write-PSFMessage - Level Host - Message " $ ( $sb.ToString ()) "
152
+ }
153
+
154
+ $null = $sbHelp.AppendLine (" " )
155
+ $null = $sbHelp.AppendLine (" <c='$colorParmsNotFound '>$colorParmsNotFound </c> = Parameter not found" )
156
+ $null = $sbHelp.AppendLine (" <c='$colorCommandName '>$colorCommandName </c> = Command Name" )
157
+ $null = $sbHelp.AppendLine (" <c='$colorMandatoryParam '>$colorMandatoryParam </c> = Mandatory Parameter" )
158
+ $null = $sbHelp.AppendLine (" <c='$colorNonMandatoryParam '>$colorNonMandatoryParam </c> = Optional Parameter" )
159
+ $null = $sbHelp.AppendLine (" <c='$colParmValue '>$colParmValue </c> = Parameter value" )
160
+ $null = $sbHelp.AppendLine (" <c='$colorFoundAsterisk '>*</c> = Parameter was filled" )
161
+ $null = $sbHelp.AppendLine (" <c='$colorNotFoundAsterisk '>*</c> = Mandatory missing" )
162
+ }
153
163
154
- " ShowParameters" {
155
- foreach ($parmSet in (Get-Command $commandName ).ParameterSets) {
156
- # (Get-Command $commandName).ParameterSets | ForEach-Object {
157
- $null = $sb = New-Object System.Text.StringBuilder
158
- $null = $sb.AppendLine (" ParameterSet Name: <c='em'>$ ( $parmSet.Name ) </c> - Parameter List" )
159
- $null = $sb.Append (" <c='$colorCommandName '>$commandName </c>" )
164
+ " ShowParameters" {
165
+ foreach ($parmSet in (Get-Command $commandName ).ParameterSets) {
166
+ # (Get-Command $commandName).ParameterSets | ForEach-Object {
167
+ $null = $sb = New-Object System.Text.StringBuilder
168
+ $null = $sb.AppendLine (" ParameterSet Name: <c='em'>$ ( $parmSet.Name ) </c> - Parameter List" )
169
+ $null = $sb.Append (" <c='$colorCommandName '>$commandName </c>" )
160
170
161
- $parmSetParameters = $parmSet.Parameters | Where-Object name -NotIn $commonParameters
162
-
163
- foreach ($parameter in $parmSetParameters ) {
164
- # $parmSetParameters | ForEach-Object {
165
- $color = " $colorNonMandatoryParam "
171
+ $parmSetParameters = $parmSet.Parameters | Where-Object name -NotIn $commonParameters
166
172
167
- if ($parameter.IsMandatory -eq $true ) { $color = " $colorMandatoryParam " }
173
+ foreach ($parameter in $parmSetParameters ) {
174
+ # $parmSetParameters | ForEach-Object {
175
+ $color = " $colorNonMandatoryParam "
168
176
169
- $null = $sb .Append ( " <c=' $color '>- $ ( $parameter .Name ) </c> " )
177
+ if ( $parameter .IsMandatory -eq $true ) { $color = " $colorMandatoryParam " }
170
178
171
- if (-not ($parameter.ParameterType -eq [System.Management.Automation.SwitchParameter ])) {
172
- $null = $sb.Append (" <c='$colParmValue '>PARAMVALUE </c>" )
173
- }
174
- }
179
+ $null = $sb.Append (" <c='$color '>-$ ( $parameter.Name ) </c>" )
175
180
176
- $null = $sb .AppendLine ( " " )
177
- Write-PSFMessage - Level Host - Message " $ ( $ sb.ToString () ) "
181
+ if ( -not ( $parameter .ParameterType -eq [ System.Management.Automation.SwitchParameter ])) {
182
+ $null = $ sb.Append ( " <c=' $colParmValue '>PARAMVALUE </c> " )
178
183
}
179
-
180
- $null = $sbHelp.AppendLine (" " )
181
- $null = $sbHelp.AppendLine (" <c='$colorCommandName '>$colorCommandName </c> = Command Name" )
182
- $null = $sbHelp.AppendLine (" <c='$colorMandatoryParam '>$colorMandatoryParam </c> = Mandatory Parameter" )
183
- $null = $sbHelp.AppendLine (" <c='$colorNonMandatoryParam '>$colorNonMandatoryParam </c> = Optional Parameter" )
184
- $null = $sbHelp.AppendLine (" <c='$colParmValue '>$colParmValue </c> = Parameter value" )
185
184
}
186
- Default {}
187
- }
188
-
189
- if ($sbParmsNotFound.Length -gt 0 ) {
190
- Write-PSFMessage - Level Host - Message " $ ( $sbParmsNotFound.ToString ()) "
185
+
186
+ $null = $sb.AppendLine (" " )
187
+ Write-PSFMessage - Level Host - Message " $ ( $sb.ToString ()) "
191
188
}
192
189
193
- if ($IncludeHelp ) {
194
- Write-PSFMessage - Level Host - Message " $ ( $sbHelp.ToString ()) "
195
- }
196
- }
197
- else {
198
- Write-PSFMessage - Level Host - Message " The function was unable to get the help of the command. Make sure that the command name is valid and try again."
199
- Stop-PSFFunction - Message " Stopping because command name didn't return any help."
200
- return
190
+ $null = $sbHelp.AppendLine (" " )
191
+ $null = $sbHelp.AppendLine (" <c='$colorCommandName '>$colorCommandName </c> = Command Name" )
192
+ $null = $sbHelp.AppendLine (" <c='$colorMandatoryParam '>$colorMandatoryParam </c> = Mandatory Parameter" )
193
+ $null = $sbHelp.AppendLine (" <c='$colorNonMandatoryParam '>$colorNonMandatoryParam </c> = Optional Parameter" )
194
+ $null = $sbHelp.AppendLine (" <c='$colParmValue '>$colParmValue </c> = Parameter value" )
201
195
}
196
+ Default {}
202
197
}
203
- else {
204
- Write-PSFMessage - Level Host - Message " The function was unable to extract a valid command name from the supplied command text. Please try again."
205
- Stop-PSFFunction - Message " Stopping because of missing command name."
206
- return
198
+
199
+ if ($sbParmsNotFound.Length -gt 0 ) {
200
+ Write-PSFMessage - Level Host - Message " $ ( $sbParmsNotFound.ToString ()) "
201
+ }
202
+
203
+ if ($IncludeHelp ) {
204
+ Write-PSFMessage - Level Host - Message " $ ( $sbHelp.ToString ()) "
207
205
}
208
206
}
0 commit comments