问答

为什么ForEach的行为与%不同,即使它们都是Powershell中的ForEach-Object的别名?

 来源: 本站整理    2018-11-11    2  

出于某种原因,ForEach-Object的%别名在使用($Thing in $Things)语法时抛出异常,而ForEach别名工作正常.

以下是两个例子:

使用%别名:

$ints = @(1, 2, 3, 4, 5)
% ($i in $ints)
{Write-Host $i}

这失败,表达式或语句中出现错误Unexpected token’in’.

使用ForEach别名:

$ints = @(1, 2, 3, 4, 5)
foreach ($i in $ints)
{Write-Host $i}

这成功没有问题.

如果它们都是ForEach-Object的别名,为什么会有区别?

这是两件不同的事情:

%是cmdlet ForEach-Object的别名,foreach也是cmdlet ForEach-Object的别名…而foreach是一个循环语句,不适用于管道传输.

如上所述,您的第一个命令扩展为:

ForEach-Object ($i in $ints) {
  Write-Host $i
}

…这不是ForEach-Object cmdlet的有效语法.

当foreach出现时,与第二个命令一样,它被解释为foreach语句,而不是cmdlet别名.在这种情况下,语法有效并按预期循环.

您可以使用get-help about_Foreach和get-help ForEach-Object来比较这些差异.这篇博文Essential PowerShell: Understanding foreach也做了很好的解释.

相关文章
循环 – 从Powershell中的ForEach中返回一个值
问答这看起来非常基本,但我看不出它是如何或为什么这样表现的: function ReturnStuff{ $a=1,2,3,4,5 $a.ForEach{ return $_ } } ReturnStuf ...
1
在控制台上的Powershell中的Foreach循环
问答这里非常简单的问题,我想看看如何在命令行上使用foreach处理一堆命令(而不是通过PS1脚本). 例如,我在控制台上显示目录列表,现在我想为每个对象执行2个命令. Get-ChildItem | F ...
1
Powershell中的Foreach错误处理
问答有没有办法在foreach循环中捕获并保存坏名称?我有以下内容: $CollectionName = "Import Test" $PCName = Import-Csv &quo ...
1
PHP中的foreach()数组中的数组?
问答我想在数组中的每个元素上调用一个函数.这显然很容易用foreach(),但是当我开始崩溃时,数组包含数组.有人可以通过一个函数来执行每个键的代码 – >数组中的一组数组的值对.在理论上,深度可以 ...
2
如何在“R”中的foreach循环中导出多个函数或包
问答我试图通过在R中使用doParallel包来减少我的代码的运行时间. 我正在调用一个函数awareRateSIR,在这个函数的主体中使用了一些额外的包.我得到一些错误 could not find f ...
2
c# – 在.NET中,使用“foreach”来迭代IEnumerable的一个实例会创建一个副本?那么我应该更喜欢使用“for”而不是“foreach”吗?
问答在.NET中,使用"foreach"来迭代IEnumerable的一个实例会创建一个副本?那么我应该更喜欢使用"for"而不是"foreach&quo ...
2
c# – 在lambda表达式中使用foreach循环的iterator变量 – 为什么会失败?
问答请考虑以下代码: public class MyClass { public delegate string PrintHelloType(string greeting); public void ...
1
在PHP中使用foreach循环时查找数组的最后一个元素
问答我使用一些参数写一个SQL查询创建者.在Java中,通过只使用数组长度检查当前数组位置,很容易从for循环中检测数组的最后一个元素. for(int i=0; i< arr.length;i++ ...
2
我可以在C#winforms中使用foreach循环评估两组项目吗?
问答我有一个winforms TabControl,我试图循环遍历每个选项卡中包含的所有控件.有没有办法在foreach循环中添加或者不可能评估多个项目组?例如,这就是我想要做的: foreach (Co ...
2
ember.js – 在ember数据中,在forEach循环中调用destroyRecord会破坏循环?
问答我正在为我的一个项目开发一个简单的Tag模型.我在Angular中实现了类似的东西,但我想在Ember中尝试一下.型号代码如下 Tag = DS.Model.extend { name:DS.attr ...
1
循环 – 如何在csh中向foreach添加循环计数器
问答在CSH foreach循环或for循环中,如何添加循环迭代器或计数器,从10增加到1000,步长为20? 像foreach i(1..20..5)或for(i = 1; i::如果你有seq命令,你 ...
2
php – 数组中的Foreach循环
问答我正在尝试使用for循环在数组中创建一个数组 – 这是我的代码: array( 'label' => 'Assign to user', 'desc' => 'Choose a user' ...
1
在php中的foreach循环中更改关联数组的$key
问答我有一个像这样的数组: array( 'firstName' => 'Joe', 'lastName' => 'Smith' ) 我需要循环遍历数组中的每个元素,最后,数组应如下所示: a ...
3
PowerShell中嵌套的ForEach()
问答我在Powershell中遇到了嵌套ForEach循环的麻烦.首先,我需要遍历列表1.对于列表1中的每个对象,我需要遍历列表2.当我在列表2中找到类似对象时,我想转到列表1中的下一个对象. 我试过休息 ...
1
如何在Java中使用foreach循环来遍历HashMap中的值?
问答我试图编译以下代码: private String dataToString(){ Map data = (HashMap<MyClass.Key, String>) getData(); ...
2
.net – LinkedList中的Foreach项目是否按顺序提供项目?
问答LinkedList中的Foreach项目是否按严格顺序给出项目? 是严格的顺序First => Next => Next => - =>最后在foreach中受到尊重或者最好 ...
1
node.js – 如何在nodejs中使用foreach来完成Mongodb操作
问答这是我从集合groupname获取数据的代码,该集合名称初始化为集合名称.我想使用foreach循环迭代doc中存储的数据. var db = mongojs('login'); var cursor ...
4
如何在C#中的foreach循环内访问集合中的下一个值?
问答我在C#中工作,并且有一个排序的List的结构.我试图遍历列表,每次迭代我想访问列表的下一个成员.有没有办法做到这一点? 伪代码示例: foreach (Member member in List) ...
2
javascript – 在JS中为foreach问题中的每个项目调用QTip
问答在我看来,我有这个: <%-- The training module list --%> <div id="training-mod-list-<%: catego ...
1