如下说明是翻译
PowerShell
中
: help Invoke-Expression
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Invoke-Expression
大纲
运行一个以字符串形式提供的
Windows PowerShell
表达式
.
语法
Invoke-Expression [-command] <string> [<CommonParameters>]
详细描述
运行一个以字符串形式提供的
Windows PowerShell
表达式
. Invoke-Expression
输出参数
Command
指定的命令的执行结果
.
然而
,
当结果是一个空数组时
,
此命令输出
$null,
如果结果只有一个元素
,
此命令只输出该元素
.
参数
-command <string>
指定一个字符串或者包含字符串的变量
,
此字符串必须是
Windows PowerShell
表达式
.
强制参数
?
|
True
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
)
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
None
返回类型
Cmdlet
本身的输出与通过参数
Command
指定的表示命令的字符串所执行的结果对象一样
.
然而
,
如果表达式的输出是空数组或者只有一个元素的数组
, cmdlet
的输出分别是
$null
或者是单独的元素
, respectively.
注意
要将代码块作为
Command
参数的值
,
你必须将它们放入引号中
.
否则
, PowerShell
将会识别该代码块
,
并对其求值
.
而不是将其字面值传递给参数
Command.
关于代码块更多的说明
,
键入
get-help about_script_block.
使用
invoke-expression cmdlet
时
,
如果没有适当的预防措施
,
很可能会威胁您的计算机系统
.
此命令可以简化编写接受输入
,
并根据输入构造和运行
Windows PowerShell
命令的脚本
.
这样的脚本作者不能完全的控制脚本能够执行的命令
.
一些提供给脚本的输入可能是恶意命令
.
这些命令将会执行
(
在脚本的当前安全上下文中执行
)
除非脚本的作者已经谨慎的在使用它们之前进行了验证
.
通常情况下
,
最好是识别并允许已知的有益的输入
,
并拒绝全部其他输入
,
而不是允许除了看起来有恶意以外的所有其他输入
.
例
1
C:/PS>$sorted_processes = "get-process | sort-object Name"
invoke-expression $sorted_processes
此命令创建一个变量
$sorted_processes
并将命令文本存储到变量中
. Invoke-Expression cmdlet
接下来执行存储在变量
$sorted_processes
中的命令
.
例
2
C:/PS>$cmdlet_name = "get-eventlog"
$example_number = 1
$example_code = (get-help $cmdlet_name).examples.example[($example_number-1)].code
invoke-expression $example_code
此命令从
cmdlet
帮助中取得并执行一个示例命令
.
他将运行
Get-EventLog cmdlet
的第一个示例
.
要运行不同
cmdlet
的示例
,
改变变量
$cmdlet_name
的值为
cmdlet
的名称
,
并改变变量
$example_number
的值为你想运行的示例编号
.
如果你输入的示例编号是非法的
,
此命令执行失败
.
命令的第一行存储
cmdlet
的名称
: get-eventlog,
到变量
$cmdlet_name
中
.
命令的第二行将示例编号存储到变量
$example_number
中
.
命令的第三行
, properties of the object returned by the Get-Help cmdlet
返回的对象属性被访问并取得示例代码
,
并将其存储在变量
$example_code
中
.
命令最后一行
,
通过使用
Invoke-Expression
来运行示例代码
.
相关链接
Trace-Command
Invoke-Item
Invoke-History