Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Rövid leírás
Ismerteti, hogy a változók hogyan tárolják a PowerShellben használható értékeket.
Hosszú leírás
Minden típusú értéket tárolhat PowerShell-változókban. Tárolja például a parancsok eredményeit, és tárolja a parancsokban és kifejezésekben használt elemeket, például neveket, elérési utakat, beállításokat és értékeket.
A változó a memória egysége, amelyben az értékek tárolódnak. A PowerShellben a változókat dollárjellel ($) kezdődő szöveges sztringek jelölik, például $a: , $processvagy $my_var.
A változónevek nem megkülönböztetik a kis- és nagybetűket, és szóközöket és speciális karaktereket is tartalmazhatnak. A speciális karaktereket és szóközöket tartalmazó változóneveket azonban nehéz használni, ezért kerülni kell őket. További információ: Speciális karaktereket tartalmazó változónevek.
A PowerShellben számos különböző változótípus létezik.
Felhasználó által létrehozott változók: A felhasználó által létrehozott változókat a felhasználó hozza létre és tartja karban. Alapértelmezés szerint a PowerShell parancssorában létrehozott változók csak a PowerShell-ablak megnyitásakor léteznek. A PowerShell-ablakok bezárásakor a változók törlődnek. Egy változó mentéséhez adja hozzá a PowerShell-profiljához. Változókat globális, szkriptes vagy helyi hatókörű szkriptekben is létrehozhat.
Automatikus változók: Az automatikus változók a PowerShell állapotát tárolják. Ezeket a változókat a PowerShell hozza létre, és a PowerShell a pontosság fenntartása érdekében szükség szerint módosítja az értékeket. A felhasználók nem módosíthatják ezeknek a változóknak az értékét. A változó például
$PSHOMEa PowerShell telepítési könyvtárának elérési útját tárolja.További információ, az automatikus változók listája és leírása: about_Automatic_Variables.
Beállításváltozók: A beállítási változók a PowerShell felhasználói beállításait tárolják. Ezeket a változókat a PowerShell hozza létre, és alapértelmezett értékekkel tölti fel őket. A felhasználók módosíthatják ezeknek a változóknak az értékeit. A változó például
$MaximumHistoryCountmeghatározza a munkamenetelőzmények bejegyzéseinek maximális számát.További információ, lista és a beállításváltozók leírása: about_Preference_Variables.
Változók használata
Új változó létrehozásához egy hozzárendelési utasítással rendeljen hozzá egy értéket a változóhoz. Használat előtt nem kell deklarálnia a változót. Az összes változó alapértelmezett értéke a .$null
A PowerShell-munkamenetben lévő összes változó listájának lekéréséhez írja be a következőt Get-Variable: . A változónevek a változókra való hivatkozáshoz használt előző dollárjel ($) nélkül jelennek meg.
Példa:
$MyVariable = 1, 2, 3
$Path = "C:\Windows\System32"
A változók hasznosak a parancsok eredményeinek tárolásához.
Példa:
$Processes = Get-Process
$Today = (Get-Date).DateTime
Egy változó értékének megjelenítéséhez írja be a változó nevét, amelyet egy dollárjel ($) előz meg.
Példa:
$MyVariable
1
2
3
$Today
Tuesday, September 3, 2019 09:46:46
Egy változó értékének módosításához rendeljen hozzá egy új értéket a változóhoz.
Az alábbi példák a változó értékét $MyVariable jelenítik meg, módosítják a változó értékét, majd megjelenítik az új értéket.
$MyVariable = 1, 2, 3
$MyVariable
1
2
3
$MyVariable = "The green cat."
$MyVariable
The green cat.
Egy változó értékének törléséhez használja a Clear-Variable parancsmagot, vagy módosítsa az értéket a következőre $null: .
Clear-Variable -Name MyVariable
$MyVariable = $null
A változó törléséhez használja a Remove-Variable vagy az Remove-Item parancsot.
Remove-Variable -Name MyVariable
Remove-Item -Path Variable:\MyVariable
Egy utasítással több változóhoz is rendelhet értékeket. Az alábbi példák ugyanazt az értéket rendelik több változóhoz:
$a = $b = $c = 0
A következő példa több értéket rendel több változóhoz.
$i,$j,$k = 10, "red", $true # $i is 10, $j is "red", $k is True
$i,$j = 10, "red", $true # $i is 10, $j is [Object[]], Length 2
További információt a about_Assignment_Operators Több változó hozzárendelése című szakaszában talál.
Változók típusai
Bármilyen típusú objektumot tárolhat egy változóban, beleértve az egész számokat, sztringeket, tömböket és kivonattáblákat. A folyamatokat, szolgáltatásokat, eseménynaplókat és számítógépeket ábrázoló objektumok.
A PowerShell-változók lazán vannak begépelve, ami azt jelenti, hogy nem korlátozódnak egy adott objektumtípusra. Egyetlen változó egyszerre több különböző típusú objektum gyűjteményét vagy tömböt is tartalmazhat.
A változó adattípusát a változó értékeinek .NET-típusai határozzák meg. Egy változó objektumtípusának megtekintéséhez használja a Get-Member függvényt.
Példa:
$a = 12 # System.Int32
$a = "Word" # System.String
$a = 12, "Word" # array of System.Int32, System.String
$a = Get-ChildItem C:\Windows # FileInfo and DirectoryInfo types
A típusattribútum és a karakterjelezés használatával biztosíthatja, hogy egy változó csak adott objektumtípusokat vagy objektumokat tartalmazzon, amelyek átalakíthatók erre a típusra. Ha egy másik típusú értéket próbál hozzárendelni, a PowerShell megpróbálja átalakítani az értéket a típusára. Ha a típus nem konvertálható, a hozzárendelési utasítás meghiúsul.
Az öntött jelölés használatához írjon be egy típusnevet szögletes zárójelben a változó neve elé (a hozzárendelési utasítás bal oldalán). Az alábbi példa egy olyan változót $number hoz létre, amely csak egész számokat tartalmazhat, egy olyan változót $words , amely csak sztringeket tartalmazhat, és egy olyan változót $dates , amely csak DateTime-objektumokat tartalmazhat.
[int]$number = 8
$number = "12345" # The string is converted to an integer.
$number = "Hello"
Cannot convert value "Hello" to type "System.Int32". Error: "Input string
was not in a correct format."
At line:1 char:1
+ $number = "Hello"
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [],
ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
[string]$words = "Hello"
$words = 2 # The integer is converted to a string.
$words += 10 # The plus (+) sign concatenates the strings.
$words
210
[datetime] $dates = "09/12/91" # The string is converted to a DateTime object.
$dates
Thursday, September 12, 1991 00:00:00
$dates = 10 # The integer is converted to a DateTime object.
$dates
Monday, January 1, 0001 00:00:00
Változók használata parancsokban és kifejezésekben
Ha változót szeretne használni egy parancsban vagy kifejezésben, írja be a változó nevét, amelyet a dollár ($) jel előz meg.
Ha a változó neve és a dollárjel nem idézőjelek közé van zárva, vagy ha idézőjelek közé" vannak zárva, a változó értékét a parancs vagy kifejezés használja.
Ha a változó neve és a dollárjel egyetlen idézőjelben (') van elzárva, a változó neve a kifejezésben lesz használva.
Az idézőjelek PowerShellben való használatáról további információt a about_Quoting_Rules talál.
Ez a példa lekéri a $PROFILE változó értékét, amely a PowerShell felhasználói profilfájljának elérési útja a PowerShell-konzolon.
$PROFILE
C:\Users\User01\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Ebben a példában két parancs látható, amelyek megnyithatják a PowerShell-profilt notepad.exe. A dupla idézőjelet (") tartalmazó példa a változó értékét használja.
notepad $PROFILE
notepad "$PROFILE"
Az alábbi példák egy idézőjeleket (') használnak, amelyek a változót literális szövegként kezelik.
'$PROFILE'
$PROFILE
'Use the $PROFILE variable.'
Use the $PROFILE variable.
Speciális karaktereket tartalmazó változónevek
A változónevek dollárjellel kezdődnek$, és alfanumerikus karaktereket és speciális karaktereket tartalmazhatnak. A változónév hosszát csak a rendelkezésre álló memória korlátozza.
Az ajánlott eljárás az, hogy a változónevek csak alfanumerikus karaktereket és aláhúzásjelet (_) tartalmaznak. A szóközöket és más speciális karaktereket tartalmazó változónevek nehezen használhatók, ezért kerülni kell őket.
Az alfanumerikus változónevek a következő karaktereket tartalmazhatják:
- Unicode-karakterek a következő kategóriákból: Lu, Ll, Lt, Lm, Lo vagy Nd.
- Aláhúzásjel (
_) karakter. - Kérdőjel (
?) karakter.
Az alábbi lista a Unicode-kategóriák .NET-neveit tartalmazza leírással. További információ: UnicodeCategory.
- Lu – Nagybetű – nagy kezdőbetű
- Ll – Kisbetű – kisbetű
- Lt – TitlecaseLetter – egyetlen karakterként kódolt digráf, amelynek első része nagybetűs
- Lm – ModifierLetter – módosító betű
- Lo - OtherLetter - egyéb betűk, beleértve a szótagokat és az ideográfokat
- Nd – DecimalDigitNumber – tizedesjegy
Ha szóközöket vagy speciális karaktereket tartalmazó változónevet szeretne létrehozni vagy megjeleníteni, csatolja a változó nevét a kapcsos zárójelek ({}) karakterekkel.
A kapcsos zárójelek közvetlenül a PowerShellt irányítják a változónév karaktereinek literálként való értelmezéséhez.
A speciális karakterváltozók nevei a következő karaktereket tartalmazhatják:
- Bármely Unicode-karakter, a következő kivételekkel:
- A záró kapcsos zárójel (
}) karakter (U+007D). - A backtick (
`) karakter (U+0060). A backtick a Unicode-karakterek feloldására szolgál, így a rendszer konstansként kezeli őket.
- A záró kapcsos zárójel (
A PowerShell olyan fenntartott változókkal rendelkezik, mint $$a , $?, $^és $_ alfanumerikus és speciális karaktereket tartalmaznak. További információ: about_Automatic_Variables.
A következő parancs például létrehozza a névvel ellátott változót save-items. A kapcsos zárójelre ({}) azért van szükség, mert a változó neve kötőjelet (-) tartalmaz.
${save-items} = "a", "b", "c"
${save-items}
a
b
c
Az alábbi parancs lekéri a környezeti változó által képviselt gyermekelemeket a ProgramFiles(x86) könyvtárban.
Get-ChildItem ${Env:ProgramFiles(x86)}
Ha kapcsos zárójeleket tartalmazó változónévre szeretne hivatkozni, csatolja a változó nevét a kapcsos zárójelek közé, és használja a backtick karaktert a kapcsos zárójelek feloldásához. Például egy változó nevesített this{value}is típus létrehozásához:
${this`{value`}is} = "This variable name uses braces and backticks."
${this`{value`}is}
This variable name uses braces and backticks.
Változók és hatókör
Alapértelmezés szerint a változók csak abban a hatókörben érhetők el, amelyben létrehozták őket.
Egy függvényben létrehozott változó például csak a függvényen belül érhető el. Egy szkriptben létrehozott változó csak a szkripten belül érhető el. Ha pontozza a szkriptet, a változó hozzá lesz adva az aktuális hatókörhöz. További információ: about_Scopes.
A változó alapértelmezett hatókörének módosításához használhat hatókör-módosítót. A következő kifejezés létrehoz egy változót.Computers A változó globális hatókörrel rendelkezik, még akkor is, ha szkriptben vagy függvényben lett létrehozva.
$Global:Computers = "Server01"
Minden olyan szkripthez vagy parancshoz, amely munkameneten kívül fut, a hatókör-módosítónak szüksége van a Using: változóértékek beágyazásához a hívási munkamenet hatóköréből, hogy a munkameneten kívüli kód hozzáférhessen hozzájuk.
További információ: about_Remote_Variables.
Változók mentése
A létrehozott változók csak abban a munkamenetben érhetők el, amelyben létrejönnek. A munkamenet bezárásakor elvesznek.
Ha minden megkezdett PowerShell-munkamenetben létre szeretné hozni a változót, adja hozzá a változót a PowerShell-profiljához.
Ha például minden PowerShell-munkamenetben módosítani szeretné a $VerbosePreference változó értékét, adja hozzá a következő parancsot a PowerShell-profilhoz.
$VerbosePreference = "Continue"
Ezt a parancsot hozzáadhatja a PowerShell-profilhoz a fájl szövegszerkesztőben való megnyitásával $PROFILE , például notepad.exe. További információ a PowerShell-profilokról: about_Profiles.
A változó: meghajtó
A PowerShell-változószolgáltató létrehoz egy meghajtót Variable: , amely fájlrendszer-meghajtóként néz ki és működik, de tartalmazza a munkamenet változóit és azok értékeit.
A meghajtóra való váltáshoz Variable: használja a következő parancsot:
Set-Location Variable:
A meghajtó elemeinek és változóinak Variable: listázásához használja a parancsmagokat vagy Get-Item parancsmagokatGet-ChildItem.
Get-ChildItem Variable:
Egy adott változó értékének lekéréséhez a fájlrendszer jelölésével adja meg a meghajtó nevét és a változó nevét. Az automatikus változó lekéréséhez $PSCulture például használja az alábbi parancsot.
Get-Item Variable:\PSCulture
Name Value
---- -----
PSCulture en-US
A meghajtóval és a Variable: PowerShell-változó szolgáltatóval kapcsolatos további információk megjelenítéséhez írja be a következőt:
Get-Help Variable
Változószintaxis szolgáltatói elérési utakkal
A szolgáltatói elérési utat a dollár ($) jellel előtaggal adhatja meg, és hozzáférhet az IContentCmdletProvider felületet implementáló bármely szolgáltató tartalmához.
A következő beépített PowerShell-szolgáltatók támogatják ezt a jelölést:
A változó parancsmagjai
A PowerShell változók kezelésére tervezett parancsmagokat tartalmaz.
A parancsmagok listázásához írja be a következőt:
Get-Command -Noun Variable
Ha segítségre van szüksége egy adott parancsmaghoz, írja be a következőt:
Get-Help <cmdlet-name>
| Parancsmag neve | Leírás |
|---|---|
Clear-Variable |
Egy változó értékét törli. |
Get-Variable |
Lekéri a változókat az aktuális konzolon. |
New-Variable |
Létrehoz egy új változót. |
Remove-Variable |
Töröl egy változót és annak értékét. |
Set-Variable |
Módosítja egy változó értékét. |