PowerShell ForEach循环

Foreach循环在PowerShell中也称为Foreach语句。Foreach是一个关键字,用于循环遍历数组或对象,字符串,数字等的集合。此循环主要用于需要一次处理一个对象的情况。

1.语法

以下块显示了Foreach循环的语法:

Foreach($<item> in $<collection>)  
{  
     Statement-1  
     Statement-2  
     Statement-N  
}

在此语法中,<item>是变量或对象的单个值,该值在每次迭代中都会变化。 <collection>是要访问的数组或数字和字符串的集合。 执行此循环时,PowerShell会自动创建变量$<item>。 语法中有一个块,其中包含一个或多个针对集合中的每个项目执行的语句。

2.ForEach循环流程图

ForEach循环流程图

3.例子

示例1: 下面的示例使用foreach循环显示数组的值:

PS C:\> $Array = 1,2,3,4,5,6,7,8,9,10  
PS C:\> foreach ($number in $Array)  
>> {  
>> echo $number  
>> }

执行上面示例代码,得到以下结果:

1
2
3
4
5
6
7
8
9
10

在此示例中,将创建数组$Array并使用整数值:1,2,3,4,5,6,7,8,9,10进行初始化。第一次执行Foreach语句时,它会分配数组的整数值1$number变量。 然后,它使用echo语句显示数字1。下一次循环时,$number设置为2,依此类推。 在Foreach循环显示数字10后,PowerShell终止循环。

示例2:以下示例显示使用foreach循环的文件夹文件:

foreach($file in get-childitem)  
{  
  echo $file  
}

执行上面示例代码,得到以下结果:

    目录: C:\Users\hema


Mode                LastWriteTime         Length Name                                                                                         
----                -------------         ------ ----                                                                                         
d-----        2019/5/28      9:16                .anaconda                                                                                    
d-----        2018/9/12     16:14                .android                                                                                     
d-----         2019/9/4     18:14                .atom                                                                                        
d-----       2018/10/31      9:01                .cargo                                                                                       
d-----         2019/7/2     10:31                .conda                                                                                       
d-----        2018/11/6      9:50                .dotnet                                                                                      
d-----       2018/10/23      9:33                .eclipse                                                                                     
d-----       2018/10/11     14:18                .IdeaIC2018.2                                                                                
d-----        2018/12/8     16:49                .IdeaIC2018.3                                                                                
d-----         2019/7/2     16:16                .ipynb_checkpoints                                                                           
d-----        2019/5/28      9:18                .ipython                                                                                     
d-----         2019/7/2     10:23                .jupyter                                                                                     
d-----        2019/5/29     11:23                .keras                                                                                       
d-----        2018/9/25      9:08                .m2                                                                                          
d-----         2019/7/2      9:56                .matplotlib                                                                                  
d----l       2018/10/31      9:01                .multirust                                                                                   
d-----        2019/10/5      9:27                .p2                                                                                          
d-----       2018/10/31      9:03                .rustup                                                                                      
d-----         2019/7/2      9:29                .spyder-py3                                                                                  
d-----        2018/10/4      9:52                .tooling                                                                                     
d-----        2020/1/12     10:33                .vscode                                                                                      
d-r---       2019/11/23     21:12                3D Objects                                                                                   
d-----        2018/10/5      8:25                Aptana Rubles                                                                                
d-r---       2019/11/23     21:12                Contacts                                                                                     
d-r---         2020/2/5     17:40                Desktop                                                                                      
d-r---         2020/2/5     13:48                Documents                                                                                    
d-r---         2020/2/3     17:36                Downloads                                                                                    
d-----        2018/10/4     10:35                eclipse-workspace                                                                            
d-----        2018/10/5      9:39                eclipsej22-workspace                                                                         
d-r---       2019/11/23     21:12                Favorites                                                                                    
d-----        2018/9/12     16:14                HBuilder                                                                                     
d-----        2018/9/12     16:44                HBuilder settings                                                                            
d-----        2018/9/12     16:14                HBuilderProjects                                                                             
d-r---       2019/11/23     21:12                Links                                                                                        
d-r---       2019/11/23     21:12                Music                                                                                        
d-r---       2019/11/23     21:12                Pictures                                                                                     
d-r---       2019/11/23     21:12                Saved Games                                                                                  
d-r---       2019/11/23     21:12                Searches                                                                                     
d-----        2018/8/29     22:23                source                                                                                       
d-r---       2019/11/23     21:12                Videos                                                                                       
-a----        2020/1/17     22:15           3314 .bash_history                                                                                
-a----         2019/7/2     10:20             43 .condarc                                                                                     
-a----       2018/11/14     14:03           1166 .firefly.conf                                                                                
-a----         2020/1/9     21:29           1918 .firefly2.conf                                                                               
-a----        2019/5/24     14:12             43 .gitconfig                                                                                   
-a----        2019/5/30     21:14           1939 .viminfo                                                                                     
-a----         2019/7/2     10:36            846 Untitled.ipynb                                                                               
-a----         2019/7/2     16:17          23222 Untitled1.ipynb

在此示例中,foreach语句显示get-childitem cmdlet返回的项目(文件)列表。

示例3:下面的示例使用foreach循环显示数组的值:

$fruits= "apple", "orange", "guava", "pomegranate", "Mango"  
foreach ($item in $fruits)  
{  
    echo $item  
}

执行上面示例代码,得到以下结果:

apple
orange
guava
pomegranate
Mango

上一篇:PowerShell for循环

下一篇:PowerShell While循环

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程