如下说明是翻译: help Set-Variable 产生的帮助信息.
译者: Edengundam(马涛)
Set-Variable
大纲
为变量设值. 如果该变量不存在, 则创建该变量.
语法
Set-Variable [-name] <string[]> [[-value] <Object>] [-include <string[]>] [-exclude <string[]>] [-scope <string>] [-description <string>] [-option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-force] [-passThru] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
为变量设值. 如果该变量不存在, 则创建该变量.
参数
-name <string[]>
指定变量名称. (译者注: 此处允许使用通配符, 同时对多个变量进行赋值.)
强制参数?
|
true
|
参数位置?
|
1
|
默认值
|
N/A – 必须指定变量名
|
允许从管道绑定输入?
|
true (根据属性名)
|
允许通配符扩展?
|
true
|
-include <string[]>
设置此cmdlet执行时, 哪些对象将被处理. (译者注: 允许使用通配符, 类似过滤器, 匹配那些需要进行赋值的)
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
true
|
-exclude <string[]>
设置此cmdlet执行时, 哪些对象将被忽略. (译者注: 允许使用通配符, 类似过滤器, 过滤不要赋值的参数)
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
true
|
-scope <string>
指定该变量的生存作用域(译者注: 原文此处使用了单词export, 在其他的shell中, 一般父进程通过export将变量传递给子进程. ). 此值可以是命名作用域: "global", "local"或"script", 也可以是一个相对当前作用于的值(此值范围是从0到当前活动的作用域数量. 0代表当前作用域, 1代表父作用域).
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
local
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-value <Object>
指定该变量的值.
强制参数?
|
false
|
参数位置?
|
2
|
默认值
|
Null
|
允许从管道绑定输入?
|
true (根据值, 根据属性名)
|
允许通配符扩展?
|
false
|
-description <string>
指定变量的描述信息.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
Null
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-option <ScopedItemOptions>
修改变量的选项属性值. 合法取值为:
· None: 无选项. (默认)
· ReadOnly: 只有使用参数Force才能将参数删除或更改.
· Constant: 参数不可以被删除或更改. 只有在创建新变量时才能指定选项Constant, 所以你无法对已经存在的变量设置Constant选项.
· Private: 只在参数Scope指定的作用域中可见(译者注: 其它作用域访问可能得到$null, 可以用Test-Path进行测试. ).
· AllScope: 变量将被拷贝到所有的作用域中.
如下列出此参数接受的值:
· None
· ReadOnly
· Constant
· Private
· AllScope
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
null
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-force <SwitchParameter>
在不破坏安全性的前提下, 能够避免影响命令成功执行的限制条件, 例如: 更改已经存在的变量名(译者注: 参数选项为ReadOnly时.). 设置变量时, 用来尽最大努力执行操作(译者注: 设置为Constant则不能成功).
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-passThru <SwitchParameter>
输出此命令创建的对象到管道中. 默认情况下, 此命令不会将对象输出到管道.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-whatIf
描述执行此命令将会发生的现象, 不会真正执行此命令.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-confirm
执行命令前提示你进行确认.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
输入类型
String
注意
更多信息, 输入"Get-Help Set-Variable -detailed".需要技术信息, 输入"Get-Help Set-Variable -full".
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
例1
C:/PS>set-variable -name desc -value "a description"
c:/PS>get-variable -name desc
这两个命令首先为名叫"desc"的变量设置值"a description", 然后再取该变量的值.
例2
C:/PS>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-List的参数Property指定值(*), 来显示新创建变量的属性值.
命令中的"(Get-Process)", 将被执行的命令放在括号中, 来确保在赋值前, 首先执行该命令. 否则, 变量将包含单词"Get-Process".
相关链接
Get-Variable
New-Variable
Remove-Variable
Clear-Variable