当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于数据部分

作者:精品下载站 日期:2024-12-14 02:23:32 浏览:12 分类:玩电脑

关于数据部分


简短描述

解释数据部分,它将文本字符串和其他只读数据与脚本逻辑隔离。

详细描述

专为 PowerShell 设计的脚本可以具有一个或多个仅包含数据的数据部分。您可以在任何脚本、函数或高级函数中包含一个或多个数据部分。数据部分的内容仅限于 PowerShell 脚本语言的指定子集。

将数据与代码逻辑分离可以更轻松地识别和管理逻辑和数据。它允许您拥有单独的文本字符串资源文件,例如错误消息和帮助字符串。它还隔离了代码逻辑,这有利于安全和验证测试。

在PowerShell中,数据部分用于支持脚本国际化。您可以使用数据部分更轻松地隔离、定位和处理将翻译成多种用户界面 (UI) 语言的字符串。

数据部分是 PowerShell 2.0 的一项功能。如果不进行修订,带有数据部分的脚本将无法在 PowerShell 1.0 中运行。

句法

数据部分的语法如下:

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

Data 关键字是必需的。它不区分大小写。允许的内容仅限于以下元素:

  • 所有 PowerShell 运算符(-match 除外)

  • IfElseElseIf 语句

  • 以下自动变量:$PsCulture$PsUICulture$True$False$空

  • 评论

  • 管道

  • 语句之间用分号分隔 (;)

  • 文字,例如以下内容:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • 数据部分允许的 Cmdlet。默认情况下,仅允许使用 ConvertFrom-StringData cmdlet。

  • 您通过使用 -SupportedCommand 参数允许在数据部分中使用的 Cmdlet。

在数据部分中使用 ConvertFrom-StringData cmdlet 时,您可以将键值对括在单引号或双引号字符串中,或者将键值对括在单引号或双引号 here-string 中。但是,包含变量和子表达式的字符串必须括在单引号字符串或单引号此处字符串中,以便变量不会扩展且子表达式不可执行。

-SupportedCommand

-SupportedCommand 参数允许您指示 cmdlet 或函数仅生成数据。它旨在允许用户将 cmdlet 和函数包含在他们编写或测试的数据部分中。

-SupportedCommand 的值是一个或多个 cmdlet 或函数名称的逗号分隔列表。

例如,以下数据部分包含用户编写的 cmdlet Format-Xml,用于格式化 XML 文件中的数据:

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

使用数据部分

要使用数据部分的内容,请将其分配给变量并使用变量表示法来访问内容。

例如,以下数据部分包含一个 ConvertFrom-StringData 命令,该命令将此处的字符串转换为哈希表。哈希表被分配给 $TextMsgs 变量。

$TextMsgs 变量不是数据部分的一部分。

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

要访问 $TextMsgs 中哈希表中的键和值,请使用以下命令。

$TextMsgs.Text001
$TextMsgs.Text002

或者,您可以将变量名称放在数据部分的定义中。例如:

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

$TextMsgs

结果与前面的示例相同。

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

示例

简单的数据字符串。

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."
}

包含允许的变量的字符串。

DATA {
    if ($null) {
        "To get help for this cmdlet, type get-help new-dictionary."
    }
}

使用 ConvertFrom-StringData cmdlet 的单引号此处字符串:

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

使用 ConvertFrom-StringData cmdlet 的双引号此处字符串:

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

数据部分,包含用户编写的生成数据的 cmdlet:

DATA -supportedCommand Format-XML {
    Format-Xml -strings string1, string2, string3
}

参见

  • about_Automatic_Variables
  • about_比较_运算符
  • about_Hash_Tables
  • 关于_如果
  • about_Operators
  • about_引用_规则
  • about_Script_国际化
  • ConvertFrom-StringData
  • Import-LocalizedData

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯