about_Data_Sections

Rövid leírás

Az adatszakaszokat ismerteti, 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 adatszakaszt tartalmazhatnak, amelyek csak adatokat tartalmaznak. Egy vagy több adatszakaszt bármilyen szkriptbe, függvénybe vagy speciális függvénybe felvehet. Az Adatok szakasz tartalma a PowerShell-szkriptnyelv egy adott 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 az Adatok szakasz a szkriptek nemzetközisítésének támogatására szolgál. Az Adatszakaszokkal könnyebben elkülönítheti, megkeresheti és feldolgozhatja a számos felhasználói felületi nyelvre lefordított sztringeket.

Az Adatok szakasz egy PowerShell 2.0-s funkció. Az adatszakaszokkal rendelkező szkriptek nem futnak a PowerShell 1.0-ban változat nélkül.

Syntax

Az Adatszakasz szintaxisa a következő:

DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
    <Permitted content>
}

Az Adat 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

  • Pipelines

  • 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" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • Az Adatszakaszban engedélyezett parancsmagok. Alapértelmezés szerint csak a ConvertFrom-StringData parancsmag engedélyezett.

  • Az adatszakaszban a paraméterrel -SupportedCommand engedélyezett parancsmagok.

Ha egy Adat szakaszban használja a ConvertFrom-StringData parancsmagot, a kulcs-érték párokat egy-idézőjeles vagy dupla idézőjeles sztringekbe, illetve egy-idézőjeles vagy dupla idézőjeles itt-sztringekbe foglalhatja. 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ók számára, hogy parancsmagokat és függvényeket vegyenek fel egy olyan adatszakaszba, amelyet megírtak vagy teszteltek.

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

Az alábbi adatszakasz például tartalmaz egy felhasználó által írt parancsmagot, Format-Xmlamely XML-fájlban formáz adatokat:

DATA -supportedCommand Format-Xml
{
    Format-Xml -Strings string1, string2, string3
}

Adatszakasz használata

Egy Adatszakasz 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 adatszakasz például egy ConvertFrom-StringData parancsot tartalmaz, amely kivonattáblává alakítja az itt található sztringet. A kivonattábla hozzá van rendelve a $TextMsgs változóhoz.

A $TextMsgs változó nem része az adatszakasznak.

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

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

$TextMsgs.Text001
$TextMsgs.Text002

Másik lehetőségként elhelyezheti a változó nevét az Adatok szakasz definíciójában. Példa:

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 parancsmagot használó ConvertFrom-StringData egy idézőjeles itt-sztring:

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

A parancsmagot használó ConvertFrom-StringData kettős idézőjelű karakterlánc:

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