Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Rövid leírás
A PowerShell-megjegyzések használatát ismerteti, és felsorolja a speciális használati eseteket.
Hosszú leírás
Megjegyzéseket írhat a PowerShell-kód széljegyzetek írásához vagy strukturálásához az olvashatóság érdekében. A kód futtatásakor a PowerShell figyelmen kívül hagyja a megjegyzés szövegét.
A megjegyzések fontos kontextust biztosítanak a kód olvasói számára. Megjegyzéseket a következő célokra kell használnia:
- Összetett kód magyarázata egyszerűbben
- Egy adott megközelítés kiválasztásának magyarázata
- Az észben tartandó dokumentációs speciális esetek
- Segédanyagokra mutató hivatkozások megadása
Egyes megjegyzéseknek különleges jelentésük van a PowerShellben. Lásd: Speciális megjegyzések.
PowerShell-megjegyzésstílusok
A PowerShell két megjegyzésstílust támogat:
Egysoros megjegyzések kettőskereszttel (
#) kezdődnek, és újsorral végződnek. A#olyan szöveg előzheti meg, amely nem része a megjegyzésnek, beleértve a szóközt is. A nem tömörített forráskóddal azonos sorban elhelyezett egysoros megjegyzéseket sorvégi megjegyzéseknek nevezzük.Blokk megjegyzések
<#kezdődnek és#>végződnek. A blokkbejegyzések tetszőleges számú sort tartalmazhatnak, és belefoglalhatók a meg nem írt forráskód előtt, után vagy közepén. A blokkon belüli összes szöveg ugyanannak a megjegyzésnek a része, beleértve a szóközt is.Fontos
Egysoros megjegyzéseket is felvehet egy blokkbejegyzésbe. A blokkbejegyzések azonban nem ágyazhatók be. Ha megpróbál blokkokba rendezett megjegyzéseket beágyazni, a külső blokkokba rendezett megjegyzés az első
#>-nál ér véget.
Példák
1. példa: Egysoros megjegyzés
# This is a single-line comment.
# This is also a single-line comment.
2. példa: Megjegyzés letiltása
<#
This is a block comment.
Text within the block is a part of the same comment.
Whitespace is unimportant in a block comment.
#>
3. példa: Sorvégi megjegyzés
$var = 4 # This is an end-of-line comment
4. példa: Beágyazott blokk megjegyzése
'Foo'; <# This is an inline block comment #> 'Bar'
5. példa: Teljes példa
<#
.DESCRIPTION
Demonstrates PowerShell's different comment styles.
#>
param (
[string] $Param1, # End-of-line comment
<# Inline block comment #> $Param2
)
$var = 1, <# Inline block comment #> 2, 2
# Single-line comment.
# Another single-line comment.
$var.Where(
<# Arg1 note #> { $_ -eq 2 },
<# Arg2 note #> 'First',
<# Arg3 note #> 1
)
Speciális megjegyzések
A PowerShell számos megjegyzés-kulcsszót tartalmaz, amelyek támogatják az adott felhasználásokat.
Megjegyzésalapú súgó
A függvényekhez és szkriptekhez megjegyzésalapú súgótartalmakat írhat egysoros vagy letiltott megjegyzések használatával. A felhasználók a Get-Help parancsmaggal megtekinthetik egy függvény vagy szkript megjegyzésalapú súgóját. A PowerShell 15 megjegyzés kulcsszót határoz meg, amelyek olyan információk megadására használhatók, mint a leírás és a példahasználat.
<#
.DESCRIPTION
Comment-based help using a block comment.
#>
function Get-Function { }
# .DESCRIPTION
# Comment-based help using multiple single-line comments.
function Get-Function { }
További információ:
#Requires
A #Requires utasítás megakadályozza a szkriptek futtatását, hacsak az aktuális PowerShell-munkamenet nem felel meg a megadott előfeltételeknek.
#Requires a parancsfájl bármely sorában megjelenhet, de a feldolgozás pozíciótól függetlenül ugyanúgy történik.
#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
param (
[Parameter(Mandatory)]
[string[]] $Path
)
További információ található a(z) about_Requireslinkben.
Aláírásblokk
A szkriptek aláírhatók, hogy megfeleljenek a PowerShell végrehajtási szabályzatainak. Az aláírás után egy aláírási blokk lesz hozzáadva egy szkript végéhez. Ez a blokk több egysoros megjegyzés formájában jelenik meg, amelyeket a PowerShell olvas be a szkript végrehajtása előtt.
# SIG # Begin signature block
# ...
# SIG # End signature block
További információkért nézze meg about_Signing.
Shebang
Unix-szerű rendszereken egy shebang (#!) egy szkript elején használt irányelv, amely jelzi, hogy melyik shell-t kell használni a szkript futtatásához.
A Shebang nem része a PowerShell nyelvének. A PowerShell normál megjegyzésként értelmezi. A Shebang-et az operációs rendszer értelmezi.
Az alábbi példában a shebang biztosítja, hogy a PowerShell futtassa a szkriptet, amikor a szkriptet nem PowerShell-környezetből hívják meg.
#!/usr/bin/env pwsh
Write-Host 'Begin script'
Kódszerkesztő régiójelölői
Egyes kódszerkesztők támogatják a régiójelölőket, amelyek lehetővé teszik a kódszakaszok összecsukását és kibontását. A PowerShell esetében a régiójelölők olyan megjegyzések, amelyek #region kezdődnek, és #endregionvégződnek. A régiójelölőknek egy sor elején kell lenniük. A régiójelölők támogatottak a PowerShell ISE-ben és a PowerShell-bővítménysel rendelkező Visual Studio Code-ban. A régiójelölők nem részei a PowerShell nyelvének. A PowerShell normál megjegyzésként értelmezi őket.
További információ:
Megjegyzések sztring jogkivonatokban
# és <# #> nincs különleges jelentésük egy bővíthető vagy szó szerinti sztringben. A PowerShell szó szerint értelmezi a karaktereket.
PS> '# This is not interpreted as a comment.'
# This is not interpreted as a comment.
PS> "This is <# also not interpreted #> as a comment."
This is <# also not interpreted #> as a comment.
Bizonyos PowerShell-funkciók azonban úgy vannak kialakítva, hogy megjegyzéseket tartalmazó sztringekkel működjenek. A megjegyzés értelmezése az adott funkciótól függ.
Reguláris kifejezés megjegyzései
A PowerShell normál kifejezései (regex) a .NET regex motort használják, amely két megjegyzésstílust támogat:
- Beágyazott megjegyzés (
(?#)) - Sorvégi megjegyzés (
#)
A Regex-megjegyzéseket a PowerShell összes regex-alapú funkciója támogatja. Például:
PS> 'book' -match '(?# This is an inline comment)oo'
True
PS> 'book' -match '(?x)oo# This is an end-of-line comment'
True
PS> $regex = 'oo # This is an end-of-line comment'
PS> 'book' -split $regex, 0, 'IgnorePatternWhitespace'
b
k
Jegyzet
Egy sorvégi regex megjegyzéshez vagy a (?x) szerkezetre vagy a IgnorePatternWhitespace beállításra van szükség.
További információ:
JSON-megjegyzések
A PowerShell 6.0-tól kezdődően a ConvertFrom-Json parancsmag a következő JSON-megjegyzésstílusokat támogatja:
- Egysoros megjegyzés (
//) - Megjegyzés letiltása (
/* */)
Jegyzet
A Invoke-RestMethod parancsmag automatikusan deszerializálja a fogadott JSON-adatokat. A PowerShell 6.0-s verzióiban a JSON-adatokban engedélyezettek a megjegyzések.
Például:
'{
"Foo": "Bar" // This is a single-line comment
}' | ConvertFrom-Json
Foo
---
Bar
Figyelmeztetés
A PowerShell 7.4-től kezdődően a Test-Json parancsmag már nem támogatja a JSON-t megjegyzésekkel. Hiba jelenik meg, ha a JSON megjegyzéseket tartalmaz. A 7.4-et megelőző támogatott verziókban a Test-Json sikeresen elemezte a JSON-t megjegyzésekkel. A PowerShell 7.5-ben a Test-Json lehetőséggel figyelmen kívül hagyhatja a JSON-megjegyzéseket.
CSV-megjegyzések
Import-Csv és ConvertFrom-Csv támogatja a W3C kiterjesztett naplóformátumot.
A kivonat karakterrel kezdődő sorokat (#) a program megjegyzésekként kezeli, és figyelmen kívül hagyja, kivéve, ha a megjegyzés #Fields: kezdődik, és az oszlopnevek tagolt listáját tartalmazza. Ebben az esetben a parancsmag ezeket az oszlopneveket használja. Ez a Windows IIS és más webkiszolgálói naplók szabványos formátuma. További információ: Bővített naplófájlformátum.
@'
# This is a CSV comment
Col1,Col2
Val1,Val2
'@ | ConvertFrom-Csv
Col1 Col2
---- ----
Val1 Val2
A Windows PowerShell 5.1-ben az alapértelmezett Export-Csv és ConvertTo-Csv viselkedése a #TYPE megjegyzés formájában adja meg a típusadatokat.
A PowerShell 6.0-tól kezdődően az alapértelmezett beállítás nem tartalmazza a megjegyzést, de ezt felül lehet bírálni az IncludeTypeInformation paraméterrel.
[pscustomobject] @{ Foo = 'Bar' } | ConvertTo-Csv -IncludeTypeInformation
#TYPE System.Management.Automation.PSCustomObject
"Foo"
"Bar"
Ha egy #TYPE megjegyzés szerepel a CSV-adatokban, Import-Csv és ConvertFrom-Csv ezzel az információval állíthatja be a deszerializált objektum(ok) pstypenames tulajdonságát.
class Test { $Foo = 'Bar' }
$test = [Test]::new()
$var = $test | ConvertTo-Csv -IncludeTypeInformation | ConvertFrom-Csv
$var.pstypenames
Test
CSV:Test
ConvertFrom-StringData megjegyzések
A ConvertFrom-StringData parancsmag a # kezdetű sorokat megjegyzésekként kezeli. További információ:
Jegyzetek
A tömbös megjegyzések nem ágyazhatók egymásba. Az alábbi példában
Baznem része a megjegyzésnek.<# 'Foo' <# 'Bar' #> 'Baz' #><# #>nincs különleges jelentése egy egysoros megjegyzésen belül.#nincs különleges jelentése a blokkkommentárban.Megjegyzésként való kezeléshez a megjegyzés karakterének nem lehet része egy nem-magyarázat szimbólumnak. Az alábbi példában
#Barés<#Bar#>aFoo...token részét képező elemei. Ezért ezek nem megjegyzésekként lesznek kezelve.PS> Foo#Bar Foo#Bar: The term 'Foo#Bar' is not recognized as a name [...] PS> Foo<#Bar#> Foo<#Bar#>: The term 'Foo<#Bar#>' is not recognized as a name [...]