Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Rule request: Prefix parameters with an unambiguous (ASCII) hyphen-minus

Offen
#1,932 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
powershell
Bereich
tooling

Rechercherichtung

Beginne mit den PowerShell-Beispielen im Issue und prüfe den verknüpften UseHyphenMinusForParameter-Prototyp in PSRules. Vergleiche das vorgeschlagene Verhalten mit vorhandenen PSScriptAnalyzer-Regeln und der Ausgabe von UseBOMForUnicodeEncodedFile. Als abgeschlossen gilt die Aufgabe, wenn Unicode-Bindestrichzeichen, die zum Präfixen von Parametern verwendet werden, mit einer eindeutigen Position und Diagnose erkannt werden, einschließlich der gezeigten PowerShell-Fälle.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Issue - Discussion

Hyphen-minus characters are sometimes unintendedly replaced when passed by word processors as Microsoft Office applications as MSWord and Outlook. It is recommended to prefix parameters with an unambiguous hyphen-minus as Unicode dashes might cause parsing errors in earlier versions of PowerShell.
Besides it unnecessary triggers the UseBOMForUnicodeEncodedFile rule with no clear indication of the location.

PowerShell 7
# .\Test.ps1
Write-Host “test” –ForegroundColor ‘Red’ -BackgroundColor ‘Green’
Invoke-ScriptAnalyzer .\Test.ps1

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSAvoidUsingWriteHost               Warning      Test.ps1   1     File 'Test.ps1' uses Write-Host. Avoid using
                                                                  Write-Host because it might not work in all hosts,
                                                                  does not work when there is no host, and (prior to
                                                                  PS 5.0) cannot be suppressed, captured, or
                                                                  redirected. Instead, use Write-Output,
                                                                  Write-Verbose, or Write-Information.
PSUseBOMForUnicodeEncodedFile       Warning      Test.ps1         Missing BOM encoding for non-ASCII encoded file
                                                                  'Test.ps1'
Windows PowerShell (5.1)

Windows PowerShell (5.1) still has issue with EM-dashes:

.\test.ps1
At C:\Users\Gebruiker\downloads\Test.ps1:1 char:25
+ ...  “test” –ForegroundColor ‘Red’ -BackgroundColor ‘Green’
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The string is missing the terminator: ".
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

Invoke-ScriptAnalyzer .\Test.ps1

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
TerminatorExpectedAtEndOfString     ParseError   Test.ps1   1     The string is missing the terminator: ".
PSAvoidUsingWriteHost               Warning      Test.ps1   1     File 'Test.ps1' uses Write-Host. Avoid using
                                                                  Write-Host because it might not work in all hosts,
                                                                  does not work when there is no host, and (prior to
                                                                  PS 5.0) cannot be suppressed, captured, or
                                                                  redirected. Instead, use Write-Output,
                                                                  Write-Verbose, or Write-Information.
PSUseBOMForUnicodeEncodedFile       Warning      Test.ps1         Missing BOM encoding for non-ASCII encoded file
                                                                  'Test.ps1'

Proposed technical implementation details (optional)

See (PowerShell based) prototype UseHyphenMinusForParameter at: https://github.com/iRon7/PSRules

What is the latest version of PSScriptAnalyzer at the point of writing

1.21.0

Vorherrschende Sprache
C#
Sterne
2.2k
Forks
415
Ø Merge
13 Std. 1 Min.
Gemergte PRs (30 T.)
2

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus PowerShell/PSScriptAnalyzer

Alle Issues in PowerShell/PSScriptAnalyzer

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.