Megosztás a következőn keresztül:


about_Data_Sections

Rövid leírás

Ismerteti data szakaszokat, amelyek elválasztják a szöveges sztringeket és az egyéb írásvédett adatokat a szkriptlogikától.

Hosszú leírás

A PowerShellhez tervezett szkriptek egy vagy több olyan data szakaszt tartalmazhatnak, amelyek csak adatokat tartalmaznak. Egy vagy több data szakaszt bármilyen szkriptbe, függvénybe vagy speciális függvénybe belefoglalhat. A data szakasz tartalma a PowerShell-szkriptnyelv megadott részhalmazára korlátozódik.

Az adatok kódlogikától való elkülönítése megkönnyíti a logika és az adatok azonosítását és kezelését. Lehetővé teszi, hogy külön sztring típusú erőforrásfájlokat használ a szöveghez, például hibaüzeneteket és súgósztringeket. Elkülöníti a kódlogikát is, amely megkönnyíti a biztonsági és érvényesítési teszteket.

A PowerShellben a data szakaszban támogathatja a szkriptek nemzetközisítését. A data szakaszokkal könnyebben elkülönítheti, megkeresheti és feldolgozhatja a más nyelvekre lefordítható sztringeket.

A data szakasz a PowerShell 2.0 szolgáltatásban lett hozzáadva.

Szintaxis

Egy data szakasz szintaxisa a következő:

data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
    <Permitted content>
}

A data kulcsszó megadása kötelező. A kis- és nagybetűk nem érzékenyek. Az engedélyezett tartalom a következő elemekre korlátozódik:

  • Minden PowerShell-operátor, kivéve -match

  • if, elseés elseif utasítások

  • A következő automatikus változók: $PSCulture, $PSUICulture, $true, $falseés $null

  • Megjegyzések

  • Csővezetékek

  • Pontosvesszővel elválasztott utasítások (;)

  • Literálok, például a következők:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    @'
    <p> Hello, World </p>
    '@
    
  • Alapértelmezés szerint egy szakaszban engedélyezett data parancsmagok. Alapértelmezés szerint csak a ConvertFrom-StringData parancsmag engedélyezett.

  • A data szakaszban engedélyezett parancsmagok a -SupportedCommand paraméterrel.

Ha a ConvertFrom-StringData parancsmagot egy data szakaszban használja, a kulcs-érték párokat egy-idézőjeles vagy dupla idézőjeles sztringekbe vagy egy-idézőjeles vagy dupla idézőjeles ide-sztringekbe ágyazhatja. A változókat és alkifejezéseket tartalmazó sztringeket azonban egy idézőjeles sztringben vagy egy idézőjeles itt-sztringben kell megadni, hogy a változók ne legyenek kibontva, és az alkifejezések ne legyenek végrehajthatók.

-SupportedCommand

A SupportedCommand paraméterrel jelezheti, hogy egy parancsmag vagy függvény csak adatokat hoz létre. Úgy tervezték, hogy lehetővé tegye a felhasználóknak, hogy parancsmagokat és függvényeket vegyenek fel egy data szakaszba, amelyet megírtak vagy teszteltek.

A SupportedCommand értéke egy vagy több parancsmag vagy függvénynév vesszővel tagolt listája.

Az alábbi data szakasz például tartalmaz egy felhasználó által írt parancsmagot Format-Xml, amely xml-fájlban formáz adatokat:

data -SupportedCommand Format-Xml
{
    Format-Xml -Strings string1, string2, string3
}

data szakasz használata

Egy data szakasz tartalmának használatához rendelje hozzá egy változóhoz, és használja a változó jelölését a tartalom eléréséhez.

Az alábbi data szakasz például egy ConvertFrom-StringData parancsot tartalmaz, amely kivonattáblává alakítja az here-sztringet. A kivonattábla a $TextMsgs változóhoz van rendelve.

A $TextMsgs változó nem része a data szakasznak.

$TextMsgs = data {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

A $TextMsgskivonattáblájában szereplő kulcsok és értékek eléréséhez használja az alábbi parancsokat.

$TextMsgs.Text001
$TextMsgs.Text002

Másik lehetőségként a változó nevét is elhelyezheti a data szakasz definíciójában. Például:

data TextMsgs {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

$TextMsgs

Az eredmény megegyezik az előző példával.

Name                           Value
----                           -----
Text001                        Windows 7
Text002                        Windows Server 2008 R2

Példák

Egyszerű adatsztringek.

data {
    "Thank you for using my PowerShell Organize.pst script."
    "It is provided free of charge to the community."
    "I appreciate your comments and feedback."
}

Engedélyezett változókat tartalmazó sztringek.

data {
    if ($null) {
        "To get help for this cmdlet, type Get-Help New-Dictionary."
    }
}

A ConvertFrom-StringData parancsmagot használó egyetlen idézőjeles itt-sztring:

data {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

A ConvertFrom-StringData parancsmagot használó dupla idézőjeles itt-sztring:

data {
    ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}

Adatszakasz, amely egy felhasználó által írt, adatokat generáló parancsmagot tartalmaz:

data -SupportedCommand Format-Xml {
    Format-Xml -Strings string1, string2, string3
}

Lásd még