如下说明是翻译
: 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