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
Lehetővé teszi a munkamenetben használandó névterek megadását.
Hosszú leírás
A using utasítás lehetővé teszi a munkamenetben használni kívánt névterek megadását.
A névterek hozzáadása leegyszerűsíti a .NET-osztályok és -tagok használatát, és lehetővé teszi az osztályok importálását szkriptmodulokból és szerelvényekből.
A using utasításoknak a szkriptben vagy modulban lévő többi utasítás előtt kell lenniük. A nem kívánt utasítás nem előzheti meg, beleértve a paramétereket is.
A using utasítás nem tartalmazhat változókat.
A using utasítás nem ugyanaz, mint a változók using: hatókör-módosítója. A további információkért lásd: about_Remote_Variables.
Névtér szintaxisa
Típusok feloldása .NET-névtérből:
using namespace <.NET-namespace>
A névtér megadása megkönnyíti a típusok rövid nevük alapján történő hivatkozását.
Példa – Névterek hozzáadása a típusnévfeloldáshoz
A következő szkript lekéri a "Hello World" sztring titkosítási kivonatát.
Figyelje meg, hogy a using namespace System.Text és a using namespace System.IO hogyan egyszerűsítik a [UnicodeEncoding]System.Text, [Stream] és [MemoryStream]System.IO.
using namespace System.Text
using namespace System.IO
[string]$string = "Hello World"
## Valid values are "SHA1", "SHA256", "SHA384", "SHA512", "MD5"
[string]$algorithm = "SHA256"
[byte[]]$stringBytes = [UnicodeEncoding]::Unicode.GetBytes($string)
[Stream]$memoryStream = [MemoryStream]::new($stringBytes)
$getFileHashSplat = @{
InputStream = $memoryStream
Algorithm = $algorithm
}
$hashFromStream = Get-FileHash @getFileHashSplat
$hashFromStream.Hash.ToString()
Modulszintaxis
Osztályok és számbavételek betöltése PowerShell-modulból:
using module <module-name>
A <module-name> értéke lehet modulnév, teljes modulspecifikáció vagy egy modulfájl elérési útja.
Ha <module-name> egy elérési út, az elérési út teljes mértékben minősített vagy relatív lehet. A relatív elérési út a using utasítással rendelkező szkripthez képest oldható fel.
Ha <module-name> egy név vagy modul specifikációja, a PowerShell megkeresi a megadott modul PSModulePath.
A modulspecifikáció egy kivonatoló, amely a következő kulcsokkal rendelkezik.
-
ModuleName- Kötelező A modul nevét adja meg. -
GUID- Nem kötelező A modul GUID azonosítóját adja meg. - Emellett Kötelező megadni az alábbi három kulcs közül legalább egyet.
-
ModuleVersion– A modul minimálisan elfogadható verzióját adja meg. -
MaximumVersion– A modul maximálisan elfogadható verzióját adja meg. -
RequiredVersion– A modul pontos, kötelező verzióját adja meg. Ez nem használható a többi Verzió billentyűvel.
-
Import-Module és a #requires utasítás csak a modul által meghatározott modulfüggvényeket, aliasokat és változókat importálja. Az osztályok és az enumerálások nincsenek importálva.
A using module utasítás osztályokat és számbavételeket importál egy szkriptmodul vagy bináris modul gyökérmoduljából (ModuleToProcess). Nem importálja következetesen a beágyazott modulokban vagy szkriptekben definiált osztályokat vagy enumerációkat a gyökérmodulba. Definiálja azokat az osztályokat és enumerálásokat, amelyeket a modulon kívüli felhasználók közvetlenül a gyökérmodulban szeretnének elérhetővé tenni.
A szkriptmodul fejlesztése során gyakori, hogy módosítja a kódot, majd betölti a modul új verzióját a Import-Module a Force paraméterrel. Ez csak a gyökérmodul függvényeinek módosítására használható.
Import-Module nem tölt be beágyazott modulokat. Emellett nem tölthetők be frissített osztályok vagy enumerálások.
Ahhoz, hogy a legújabb verziót futtassa, új munkamenetet kell indítania.
A PowerShellben definiált és using utasítással importált osztályok és enumerációk nem távolíthatók el.
Példa – Osztályok betöltése szkriptmodulból
Ebben a példában egy CardGames nevű PowerShell-szkriptmodul a következő osztályokat határozza meg:
- Fedélzet
- kártya
Import-Module és a #requires utasítás csak a modul által meghatározott modulfüggvényeket, aliasokat és változókat importálja. Az osztályok nincsenek importálva. A using module parancs importálja a modult, és betölti az osztálydefiníciókat is.
using module CardGames
[Deck]$deck = [Deck]::new()
$deck.Shuffle()
[Card[]]$hand1 = $deck.Deal(5)
[Card[]]$hand2 = $deck.Deal(5)
[Card[]]$hand3 = $deck.Deal(5)
Szerelvény szintaxisa
Az alábbi szintaxis betölti a .NET-típusokat egy szerelvényből egy szkriptbe a végrehajtás elején. A szerelvényfájl teljes elérési útját kell használnia.
using assembly <.NET-assembly-path>
A using assembly utasítás a Add-Type parancsmaghoz hasonló.
A Add-Type parancsmag azonban nem a szkript végrehajtásakor, hanem a Add-Type végrehajtásakor adja hozzá a típust. További információ: Add-Type.
Példa – Szerelvényből származó betöltési típusok
Ez a példa betölt egy szerelvényt, hogy az osztályai felhasználhatók legyenek az adatok feldolgozásakor. Az alábbi szkript YAML formátumúvá alakítja az adatokat.
using assembly './YamlDotNet.dll'
using namespace YamlDotNet
$yamlSerializer = [Serialization.Serializer]::new()
$info = [ordered]@{
Inventory = @(
@{ Name = 'Apples' ; Count = 1234 }
@{ Name = 'Bagels' ; Count = 5678 }
)
CheckedAt = [datetime]'2023-01-01T01:01:01'
}
$yamlSerializer.Serialize($info)
Inventory:
- Name: Apples
Count: 1234
- Name: Bagels
Count: 5678
CheckedAt: 2023-01-01T01:01:01.0000000