首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PowerShell中$_是什么意思?

在PowerShell中$_是什么意思?
EN

Stack Overflow用户
提问于 2010-08-16 22:33:34
回答 5查看 263.9K关注 0票数 266

我在PowerShell中见过很多下面的代码,但是它到底是做什么的呢?

代码语言:javascript
复制
$_
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-16 22:36:09

这是管道中的当前值的变量,在Powershell3和更高版本中称为$PSItem

代码语言:javascript
复制
1,2,3 | %{ write-host $_ } 

代码语言:javascript
复制
1,2,3 | %{ write-host $PSItem } 

例如,在上面的代码中,数组中的每个值都会调用%{}块。$_$PSItem变量将包含当前值。

票数 197
EN

Stack Overflow用户

发布于 2010-08-21 05:57:24

我认为理解这个变量的最简单的方法就是在C#的lambda表达式中输入参数。也就是说,$_类似于C#中x => Console.WriteLine(x)匿名函数中的x。考虑以下示例:

PowerShell:

代码语言:javascript
复制
1,2,3 | ForEach-Object {Write-Host $_}

打印:

代码语言:javascript
复制
1
2
3

代码语言:javascript
复制
1,2,3 | Where-Object {$_ -gt 1}

打印:

代码语言:javascript
复制
2
3

并将其与使用LINQ的C#语法进行比较:

代码语言:javascript
复制
var list = new List<int> { 1, 2, 3 };
list.ForEach( _ => Console.WriteLine( _ ));

打印:

代码语言:javascript
复制
1
2
3

代码语言:javascript
复制
list.Where( _ => _ > 1)
    .ToList()
    .ForEach(s => Console.WriteLine(s));

打印:

代码语言:javascript
复制
2
3
票数 43
EN

Stack Overflow用户

发布于 2015-11-07 00:36:25

$_是自动变量$PSItem (在PowerShell V3.0;Usage information found here中引入)的别名,表示管道中的当前项。

有关自动变量的PowerShell (v6.0)在线文档是here

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3494115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档