Invoke-Expression 帮助信息

来源:互联网 发布:淘宝客卖家入口 编辑:程序博客网 时间:2024/06/05 04:46
如下说明是翻译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
 
原创粉丝点击