如下说明是翻译
: help Set-Alias
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Set-Alias
大纲
在当前
Windows PowerShell
会话中
,
为
cmdlet
或其他命令创建或修改别名
.
语法
Set-Alias [-name] <string> [-value] <string> [-description <string>] [-option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-passThru] [-scope <string>] [-force] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
Set-Alias cmdlet
为
cmdlet
或其他命令创建或修改别名
,
例如
:
函数
,
脚本或其他可执行文件
.
你也可以使用
Set-Alias
修改别名引用的命令
,
或者改变别名的某些属性
(
例如
:
描述信息
)
.
除非你将添加别名的信息存储于
Windows PowerShell profile
文件中
,
否则当你退出或关闭
Windows PowerShell
时
,
对别名的修改将会丢失
.
参数
-name <string>
指定新的别名
.
你可以使用字幕或数字来表示别名
,
但是第一个字符不允许是数字
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据属性名
)
|
允许通配符扩展
?
|
false
|
-value <string>
指定该别名指向的
cmdlet
或命令
.
强制参数
?
|
true
|
参数位置
?
|
2
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据属性名
)
|
允许通配符扩展
?
|
false
|
-description <string>
指定该别名的描述信息
(
您可以输入任何字符串信息
)
.
如果描述信息包含空格
,
使用引号进行保护
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-option <ScopedItemOptions>
设置别名的选项
(Option)
属性
.
合法取值如下
:
·
None:
需选项
. (
默认
)
·
ReadOnly:
除非使用参数
Force,
否则别名的属性不能被更改
.
你可以使用
Remove-Item
删除别名
.
·
Constant:
别名不能被删除
,
且属性不能被更改
. Constant
只有在创建别名时才能使用
.
你不能将已经存在的别名设置为
Constant.
·
Private:
别名只能在参数
Scope
指定的作用域中可见
.
在其他的作用域中都不可见
.
·
AllScope:
该别名将会被复制到所有作用域中
.
要查看别名的
Options
属性
,
输入
"get-alias | format-table -property Name, Definition, Options -autosize".
如下列出此参数接受的参数
:
·
None
·
ReadOnly
·
Constant
·
Private
·
AllScope
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-passThru <SwitchParameter>
输出此命令创建的对象到管道中
.
默认情况下
,
此命令不会将对象输出到管道
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-scope <string>
指定该别名的生存作用域
(
译者注
:
原文此处使用了单词
export,
在其他的
shell
中
,
一般父进程通过
export
将变量传递给子进程
. ).
此值可以是命名作用域
: "global", "local"
或
"script",
也可以是一个相对当前作用于的值
(
此值范围是从
0
到当前活动的作用域数量
. 0
代表当前作用域
, 1
代表父作用域
).
"Local"
为默认值
.
更多信息
,
请输入
"get-help about_scope".
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
Local
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-force <SwitchParameter>
在不破坏安全性的前提下
,
能够避免影响命令成功执行的限制条件
,
例如
: Force
参数能够覆盖具有只读属性的文件或创建路径中的必要成分
,
但是不会改变人和文件的权限
.
强制参数
?
|
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".
输入类型
aliasObject
返回类型
除非使用参数
-passthru
否则不产生输出
.
注意
更多信息
,
输入
"get-help set-alias -detailed".
需要技术信息
,
输入
"get-help set-alias -full".
别名就是
cmdlet
或命令的别名
,
昵称
.
要运行
cmdlet
,
你可以使用它的全名或任意合法的别名
.
更多信息
,
输入
"get-help about_alias".
创建一个新的别名
,
使用
Set-Alias
或
New-Alias
.
删除别名
,
使用
Remove-Item
.
一个命令可以有多个别名
,
但是一个别名同一时间只能关联一个命令
.
如果你使用
set-alias
将一个已经存在的别名绑定到其他命令上
,
它将不会再关联到原来的命令
.
你可以为
cmdlet
创建别名
,
但是你无法为带着参数的命令创建别名
.
例如
,
你可以为
Set-Location
创建别名
,
但是不能为
"Set-Location C:/Windows/System32"
创建别名
. 要创建这样的命令,
首先创建包含命令和参数的函数
,
然后为这个函数创建别名
.
要保留会话中的别名并在其他会话中使用它们
,
将
set-alias
命令添加到
Windows PowerShell profile
文件中
.
默认情况下文件
Profiles
不存在
.
创建
profile
文件到保存在
$profile
变量中的路径位置
,
输入
"new-item -type file -force $profile".
查看变量
$profile
中的值
,
输入
"$profile".
你还可以使用
Export-Alias
将变量从当前会话拷贝到文件中
,
之后使用
Import-Alias
将保存的别名导入到新的会话中
.
你可以使用
S
et-
A
lias
内建别名
"sal".
更多信息
,
输入
"get-help About_Alias".
例
1
C:/PS>set-alias -name list -value get-childitem
此命令将会为
Get-Childitem
cmdlet
创建别名
"list".
当创建完别名后
,
你可以在使用
"Get-Childitem"
的地方使用
"list".
例
2
C:/PS>set-alias list get-location
此命令将
Get-Location
cmdlet
关联到别名
"list".
如果
"list"
已经是其他
cmdlet
的别名
,
此命令将会改变关联关系
,
命令执行完毕后将会使别名关联到
Get-Location.
此命令使用了和上个例子相同的格式
,
但是忽略了可省略的参数
-Name
和
-Value.
当你省略参数名称时
,
这些参数的值必须按照命令指定的顺序出现在命令行上
.
这种情况下
, -Name
的值
("list")
必须作为第一个参数
,
而
-Value
的值
("get-location")
必须作为第二个参数
.
例
3
C:/PS>set-alias scrub remove-item -option readonly -passthru | format-list
此命令将
Remove-Item
cmdlet
关联到别名
"scrub".
它使用选项
"ReadOnly"
来阻止别名被删除或被关联到其他命令上
.
参数
Passthru
指示
Windows PowerShell
输出代表新别名的对象并通过管道传递给
Format-List cmdlet.
如果参数
Passthru
没有出现
,
则此
cmdlet
将不会有输出
(
列表或其他形式
).
例
4
C:/PS>Set-Alias np c:/windows/notepad.exe
此命令将可执行文件
Notepad.exe
关联到别名
"np".
当命令完成后
,
只需要输入
"np"
,
就可以在
Windows PowerShell command
中运行记事本程序
.
此命令揭示了您可以为可执行命令或其他命令创建别名
.
如果要使得命令更加通用
,
你可以使用环境变量
"Windir"(${env:windir})
来表示目录
C:/Windows.
此命令的通用版本为
"set-alias np ${env:windir}/notepad.exe".
例
5
C:/PS>function CD32 {set-location c:/windows/system32}
C:/PS>set-alias go cd32
此例子用来介绍如果将带有参数的命令和别名进行关联
(
甚至可以支持多个管道连接
)
.
你可以为
cmdlet
创建别名
,
但是你不能为含有参数的命令创建别名
.
然而
,
如果你将命令放在函数或脚本中
,
接下来为给这个函数或脚本起一个有意义的名称
,
并为该函数或脚本创建别名
.
这个例子中
,
用户希望为
"set-location c:/windows/system32"
创建一个别名
, "set-location"
是使用的命令而
"C:/Windows/System32"
是参数
Path
的值
.
要完成这个
,
第一个命令创建了名叫
"CD32"
的函数
,
函数中包含了命令
Set-Location.
第二个命令为函数
CD32
创建了别名
"go".
现在
,
除了使用
Set-Location,
用户还可以输入
"CD32"
或
"go".
相关链接
Get-Alias
New-Alias
Export-Alias
Import-Alias