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

[玩转系统] Set-Variable (Microsoft.PowerShell.Utility)

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

Set-Variable (Microsoft.PowerShell.Utility)


Set-Variable

模块 :Microsoft.PowerShell.Utility

设置变量的值。如果具有请求名称的变量不存在,则创建该变量。

句法

Set-Variable
   [-Name] <String[]>
   [[-Value] <Object>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Description <String>]
   [-Option <ScopedItemOptions>]
   [-Force]
   [-Visibility <SessionStateEntryVisibility>]
   [-PassThru]
   [-Scope <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

描述

Set-Variable cmdlet 为指定变量分配值或更改当前值。如果该变量不存在,cmdlet 将创建它。

示例

示例 1:设置变量并获取其值

这些命令将 $desc 变量的值设置为 A description,然后获取该变量的值。

Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"

Name                           Value
----                           -----
desc                           A description

示例 2:设置全局只读变量

此示例创建一个全局只读变量,其中包含系统上的所有进程,然后显示该变量的所有属性。

Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
    Format-List -Property *

该命令使用 Set-Variable cmdlet 创建变量。它使用 PassThru 参数创建一个表示新变量的对象,并使用管道运算符 (|) 将对象传递到 Format-List cmdlet。它使用 Format-ListProperty 参数(值为 all (*))来显示新创建变量的所有属性。

(Get-Process) 括在括号中,以确保它在存储到变量之前执行。否则,该变量包含单词Get-Process

示例 3:了解公共变量与私有变量

此示例演示如何将变量的可见性更改为Private。该变量可以由具有所需权限的脚本读取和更改,但用户不可见。

New-Variable -Name "counter" -Visibility Public -Value 26
$Counter

26

Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}
Counter               26

Set-Variable -Name "counter" -Visibility Private
Get-Variable c*

Name                  Value
----                  -----
Culture               en-US
ConsoleFileName
ConfirmPreference     High
CommandLineParameters {}

$counter

"Cannot access the variable '$counter' because it is a private variable"

.\use-counter.ps1
#Commands completed successfully.

此命令显示如何将变量的可见性更改为私有。该变量可以由具有所需权限的脚本读取和更改,但用户不可见。

参数

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Description

指定变量的描述。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Exclude

指定此 cmdlet 从操作中排除的项目数组。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-Force

允许您创建与现有只读变量同名的变量,或更改只读变量的值。

默认情况下,您可以覆盖变量,除非该变量具有 ReadOnlyConstant 选项值。有关详细信息,请参阅选项参数。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Include

指定此 cmdlet 在操作中包含的项目数组。此参数的值限定 Name 参数。输入名称或名称模式,例如 c*。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-Name

指定变量名称。

类型 :

String[]

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Option

指定变量的选项属性的值。

有效值为:

  • :不设置任何选项。 ( 是默认值。)
  • ReadOnly:可以删除。无法更改,除非使用 Force 参数。
  • 常量:无法删除或更改。 Constant 仅在创建变量时才有效。您无法将现有变量的选项更改为常量
  • Private:该变量仅在当前范围内可用。
  • AllScope:变量被复制到创建的任何新范围。

这些值被定义为基于标志的枚举。您可以使用此参数将多个值组合在一起以设置多个标志。这些值可以作为值数组或这些值的逗号分隔字符串传递给 Option 参数。该 cmdlet 将使用二进制 OR 运算组合这些值。将值作为数组传递是最简单的选项,并且还允许您对值使用制表符补全。

类型 :

范围项选项

接受的值:

无、只读、常量、私有、所有范围、未指定

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-PassThru

返回表示新变量的对象。默认情况下,此 cmdlet 不生成任何输出。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Scope

指定变量的范围。此参数可接受的值为:

    Global
    Local
    Script
    Private
  • 相对于当前作用域的数字(0 到作用域数量,其中 0 是当前作用域,1 是其父作用域)。
  • 本地 是默认值。

    有关详细信息,请参阅 about_Scopes。

    类型 :

    String

    位置:

    命名

    默认值:

    当地的

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    -Value

    指定变量的值。

    类型 :

    目的

    位置:

    1

    默认值:

    None

    必需的:

    False

    接受管道输入:

    True

    接受通配符:

    False

    -Visibility

    确定变量在创建它的会话外部是否可见。此参数设计用于在将交付给其他用户的脚本和命令中使用。

    有效值为:

    • Public:变量可见。 (Public 是默认设置。)
    • Private:变量不可见。

    当变量是私有变量时,它不会出现在变量列表中,例如 Get-Variable 返回的变量列表,也不会出现在 Variable: 驱动器的显示中。读取或更改私有变量值的命令会返回错误。但是,如果命令是在定义变量的会话中编写的,则用户可以运行使用私有变量的命令。

    类型 :

    会话状态条目可见性

    接受的值:

    公共、私人

    位置:

    命名

    默认值:

    民众

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    -WhatIf

    显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

    类型 :

    SwitchParameter

    别名:

    wi

    位置:

    命名

    默认值:

    False

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    输入

    对象

    您可以通过管道将表示变量值的对象传递给此 cmdlet。

    输出

    默认情况下,此 cmdlet 不返回任何输出。

    PS变量

    当您使用 PassThru 参数时,此 cmdlet 将返回一个表示新变量或更改的变量的 PSVariable 对象。

    笔记

    PowerShell 包含以下 Set-Variable 别名:

    • 所有平台:

        set
      sv

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

      取消回复欢迎 发表评论:

      关灯