您的位置:首页 > 移动开发 > Objective-C

ForEach-Object 帮助信息

2008-03-26 20:18 323 查看
[align=left]如下说明是翻译: help ForEach-Object 产生的帮助信息. [/align]
[align=left]译者: Edengundam(马涛)[/align]

[align=left]ForEach-Object[/align]

[align=left]摘要[/align]
[align=left]对输入集合中每个对象执行操作.[/align]
[align=left] [/align]
[align=left]语法[/align]
[align=left]ForEach-Object [-process] <ScriptBlock[]> [-inputObject <psobject>] [-begin <scriptblock>] [-end <scriptblock>] [<CommonParameters>][/align]
[align=left] [/align]
[align=left]详细描述[/align]
[align=left]对输入集合中每个对象执行操作. 输入对象可以从管道传递给cmdlet或通过InputObject参数指定.[/align]
[align=left]执行的操作通过提供共给cmdlet的Process参数的代码块描述. 代码块可以包含任意Windows PowerShell脚本. [/align]
[align=left] [/align]
[align=left]在脚本块中, 当前输入对象使用$_变量表示.[/align]
[align=left] [/align]
[align=left]除了能够为输入的每个对象指定一个进行操作的脚本块外, 你还可以提供两个额外的脚本块. 一个作为Begin参数的参数值, 在处理任何输入对象之前运行. 另一个作为End参数的参数值, 在处理完所有输入对象后执行. [/align]
[align=left] [/align]
[align=left]脚本块求值的结果(包括由Begin和End产生的)沿着管道继续传递.[/align]
[align=left] [/align]
[align=left]参数[/align]
[align=left] [/align]
[align=left]-process <ScriptBlock[]>[/align]
[align=left]指定为每个输入对象进行处理的脚本块.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]true[/align]
[align=left]参数位置?[/align]
[align=left]1[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-inputObject <psobject>[/align]
[align=left]接受一个对象, 并将其作为Process参数指定的脚本块进行操作的对象. 输入一个包含对象的变量, 或者一个能够产生对象的命令或表达式.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]true (根据值)[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-begin <scriptblock>[/align]
[align=left]指定用于在处理任何输入对象之前运行的脚本块.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]-end <scriptblock>[/align]
[align=left]指定用于在处理完所有输入对象之后执行的脚本块.[/align]
[align=left] [/align]
[align=left]强制参数?[/align]
[align=left]false[/align]
[align=left]参数位置?[/align]
[align=left]named[/align]
[align=left]默认值[/align]
[align=left] [/align]
[align=left]允许从管道绑定输入?[/align]
[align=left]false[/align]
[align=left]允许通配符扩展?[/align]
[align=left]false[/align]
[align=left] [/align]
[align=left]<公共参数>[/align]
[align=left]此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable和-OutVariable. 更多信息, 输入, "get-help about_commonparameters".[/align]
[align=left] [/align]
[align=left]输入类型[/align]
[align=left]Object[/align]
[align=left] [/align]
[align=left]注意[/align]
[align=left] [/align]
[align=left]更多信息, 输入"Get-Help ForEach-Object -detailed".需要技术信息, 输入"Get-Help ForEach-Object -full".[/align]
[align=left] [/align]
[align=left]如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".[/align]
[align=left] [/align]
[align=left]1 [/align]
[align=left] [/align]
[align=left]C:/PS>30000,56798,12432 | foreach-object -process {$_/1024}[/align]
[align=left] [/align]
[align=left]此命令接受一个由整数构成的数组, 并将其中每个元素除以1024, 并将结果输出.[/align]
[align=left] [/align]
[align=left]2 [/align]
[align=left] [/align]
[align=left]C:/PS>get-childitem C:/ | foreach-object -process { $_.length / 1024 }[/align]
[align=left] [/align]
[align=left]此命令取得C驱动下的文件和目录, 并显示它们的占用空间大小. 数值0表示目录没有文件大小这一参数(译者注: 实际上长度为0的文件, 也会导致一样的结果, 因此不能将文件大小为0作为判断文件和目录的依据).[/align]
[align=left] [/align]
[align=left]3 [/align]
[align=left] [/align]
[align=left]C:/PS>$events = get-eventlog -logname system -newest 1000[/align]
[align=left]$events |[/align]
[align=left]foreach-object -begin {get-date}[/align]
[align=left]-process {out-file -filepath events.txt -append -inputobject $_.message}[/align]
[align=left]-end {get-date}[/align]
[align=left] [/align]
[align=left]此命令取得最近1000项系统日志信息, 并将它们存储到变量$events中. 接下来将这些日志通过管道传递给ForEach-Object cmdlet. 参数Begin显示当前时间和日期. 下一个参数是Process, 利用Out-File cmdlet创建一个名叫events.txt的文本文件, 并将每个时间的message属性信息存储到该文件中. 最后是End参数, 它被用来显示当所有处理结束时的日期和时间.[/align]
[align=left] [/align]
[align=left]4 [/align]
[align=left] [/align]
[align=left]C:/PS>get-itemproperty -path hkcu:/Network/* |[/align]
[align=left] foreach-object {set-itemproperty -path $_.pspath -name RemotePath [/align]
[align=left]-value $_.RemotePath.ToUpper();}[/align]
[align=left] [/align]
[align=left]此命令通过使用Set-ItemProperty更新一组注册表项. 注册表项指定的是计算机上映射网络驱动器的UNC路径. 此命令改变UNC路径中的字母为大写字母. 实际情境中, 你可能需要改变服务器名称或路径中某个部分. [/align]
[align=left] [/align]
[align=left]由于Set-ItemProperty cmdlet一次更新一个属性, ForEach-Object cmdlet将会针对每个需要更改的属性(这个例子中就是: 注册表项)调用一次Set-ItemProperty. 注册表项的名称是RemotePath, 位于HKCU/Network/<mapped drive letter>位置. 通过使用Get-ItemProperty cmdlet取得表示这些注册表项的对象, 并将它们通过管道作为输入传递给ForEach-Object. 在ForEach-Object中调用Set-ItemProperty时, 变量$_持有一个正在处理的注册表项对象的引用. 属性PSPath的值是保存当前项的注册表项. RemotePath属性的类型为System.String, 因此它包含了ToUpper方法, 用来将项的内容转换为大写形式.[/align]
[align=left] [/align]
[align=left]相关链接[/align]
[align=left]Where-Object[/align]
[align=left]Compare-Object[/align]
[align=left]Group-Object[/align]
[align=left]Select-Object[/align]
[align=left]Sort-Object[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: