【探索PowerShell 】【十】循环语句-阿里云开发者社区

开发者社区> 技术小胖子> 正文

【探索PowerShell 】【十】循环语句

简介:
+关注继续查看

PowerShell作为可编程性语言,拥有以下循环语句。

注:本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解。

    • for (初值;表达式;赋值语句) {代码}          用变量值控制执行次数

    • foreach (成员变量 in 数组) {代码}         利用迭代执行代码

    • foreach-object                                       对一组输入的每个对象执行运算

    • while(表达式) {代码}                              表达式为真时循环执行代码

    • do {代码}  while(表达式)                         类似于while,只是先执行代码,再判断表达式真假

    • do {代码}  until(表达式)                            执行代码,直至表达式为假

 

循环语句在PowerShell中的应用

利用foreach查询硬件信息

例一:


  1. $DiskDrive=get-wmiobject -class Win32_DiskDrive -namespace root\CIMV2  
  2.  
  3. foreach ($item in $DiskDrive)  
  4. {  
  5. write-host "Description:" $item.Description  
  6. write-host "Device ID:" $item.DeviceID  
  7. write-host "Interface Type:" $item.InterfaceType  
  8. write-host "Media Type:" $item.MediaType  
  9. write-host "Model:" $item.Model  
  10. write-host "Partitions:" $item.Partitions  
  11. write-host "Size:" $item.Size 
  12. write-host "Status:" $item.Status  

运行结果:

 

例二:


  1. $Processor=get-wmiobject -class Win32_Processor -namespace root\CIMV2  
  2.  
  3. foreach ($item in $Processor)   
  4. {  
  5. write-host "Caption:" $item.Caption  
  6. write-host "CPU Status:" $item.CpuStatus  
  7. write-host "Current Clock Speed:" $item.CurrentClockSpeed  
  8. write-host "Device ID:" $item.DeviceID  
  9. write-host "L2 Cache Size:" $item.L2CacheSize  
  10. write-host "L2 Cache Speed:" $item.L2CacheSpeed  
  11. write-host "Name:" $item.Name 

运行结果:

 

使用while监视进程状态


  1. notepad  
  2. While(get-process -name notepad | select -Property Responding){}  
  3. $time = get-date 
  4. Write-Host "The Notepad failed to respond on:$time" 

在此例下,若进程notepad出现未响应,则会产生屏幕输出。

使用do while表达:


  1. notepad
  2. do{} 
  3. While(get-process -name notepad | select -Property Responding)  
  4. $time = get-date 
  5. Write-Host "The Notepad failed to respond on:$time" 

 

利用do until进行交互


  1. do  
  2. {    
  3.     "Quit Now? (Y/N)" 
  4.     $input=Read-Host   
  5. }  
  6. until($input -eq "Y"

运行结果:

 

使用foreach-object进行格式化输出

对下列数据进行操作,

D00454798106276487326471李德建829.51
Q00136284503715856294375张春生712.65
H00374967692981018226574刘锡明891.31
R00759861215965098103878赵子龙898.21
J00741245626115645970139杨高远-13.21
K00142545764587219409172周明647.41
P00103851828756182786938张龙-27.51

使之输出为以下所示格式:

1|454798106276487326471|李德建|829.51
2|136284503715856294375|张春生|712.65
3|374967692981018226574|刘锡明|891.31
4|759861215965098103878|赵子龙|898.21
5|741245626115645970139|杨高远|0.00
6|142545764587219409172|周明|647.41
7|103851828756182786938|张龙|0.00
        小计            |3979.09

使用foreach-object对每个数据成员使用正则表达式,最后格式化输出即可:


  1. ${C:\test.txt} | `  
  2. foreach-object{$total=0;$id=1}`  
  3. {  
  4.     [void]($_ -match '^.{3}(?<id>\d+)(?<name>[\p{IsCJKUnifiedIdeographs}]+)(?<salary>[\d.]*)');  
  5.     $ofs = '|';  
  6.     "$($id;$id++;$matches.id;$matches.name;'{0:f2}' -f [float]$matches.salary)";  
  7.     $total += $matches.salary  
  8. }`  
  9. {"`t小计`t`t|$total"

 运行结果:







     本文转自melvillo 51CTO博客,原文链接:http://blog.51cto.com/marui/294113,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10076 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13884 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11889 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4503 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
《2021云上架构与运维峰会演讲合集》
立即下载