探索PowerShell(十) 循环语句介绍

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

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

• for (初值;表达式;赋值语句) {代码} 用变量值控制执行次数
• foreach (成员变量 in 数组) {代码} 利用迭代执行代码
• foreach-object 对一组输入的每个对象执行运算
• while(表达式) {代码} 表达式为真时循环执行代码
• do {代码} while(表达式) 类似于while,只是先执行代码,再判断表达式真假
• do {代码} until(表达式) 执行代码,直至表达式为假

循环语句在PowerShell中的应用

利用foreach查询硬件信息

例一:


代码如下:

$DiskDrive=get-wmiobject -class Win32_DiskDrive -namespace root\CIMV2
foreach ($item in $DiskDrive)
{
write-host "Description:" $item.Description
write-host "Device ID:" $item.DeviceID
write-host "Interface Type:" $item.InterfaceType
write-host "Media Type:" $item.MediaType
write-host "Model:" $item.Model
write-host "Partitions:" $item.Partitions
write-host "Size:" $item.Size
write-host "Status:" $item.Status
}

例二:

代码如下:

$Processor=get-wmiobject -class Win32_Processor -namespace root\CIMV2

foreach ($item in $Processor)
{
write-host "Caption:" $item.Caption
write-host "CPU Status:" $item.CpuStatus
write-host "Current Clock Speed:" $item.CurrentClockSpeed
write-host "Device ID:" $item.DeviceID
write-host "L2 Cache Size:" $item.L2CacheSize
write-host "L2 Cache Speed:" $item.L2CacheSpeed
write-host "Name:" $item.Name
}

运行结果:

使用while监视进程状态


代码如下:

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

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

使用do while表达:


代码如下:

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

利用do until进行交互


代码如下:

do
{
"Quit Now? (Y/N)"
$input=Read-Host
}
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对每个数据成员使用正则表达式,最后格式化输出即可:

代码如下:

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

运行结果:

欢迎提出意见建议!

(0)

相关推荐

  • Shell中的循环语句for、while、until实例讲解

    在编程语言中,循环语句是最基本的语法之一,在Shell(这里是Bash)中也不例外,再把以前自己写过的相关内容整理一下吧. 这里包括for/while/until循环,以及变量自增的语法实例. Shell(以Bash为例)中的循环语句一般有for.while.until这几种,偶尔还有写错语法的时候,这里结合实例来自己总结一下.也为今后使用提供一个快捷的资料获取渠道. 一.for循环语句 实例1.1 最基本的for循环: (传统的形式,for var in -) 复制代码 代码如下: #!/bi

  • Shell脚本while、until循环语句简明教程

    一.while循环 while循环用于不断执行一系列命令,也用于从输入文件中读取数据:命令通常为测试条件.其格式为: 复制代码 代码如下: while 命令 do     command1     command2     ...     commandN done 命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假. 以下是一个基本的while循环,测试条件是:如果COUNTER小于5,那么条件返回真.COUNTER从0开始,每次循环处理时,COUNTER加1.运行上述脚本,返回数字1到

  • shell脚本中case条件控制语句的一个bug分析

    在shell脚本中,发现case语句的一个问题.就是指定小写字母[a-z]和大写字母[A-Z]的这种方法不管用了. 出现如下情况: 复制代码 代码如下: [root@station1 ~]# cat case.sh#!/bin/bashwhile :doecho -n "input a letter: "read varcase "$var" in  [a-z]) echo "Lowercase letter";;  [A-Z]) echo &q

  • Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

  • shell基础学习中的字符串操作、for循环语句示例

    复制代码 代码如下: #!/bin/bashmy_name="jxq" echo $my_nameecho ${my_name} # ------------------------------------# 字符串操作# ------------------------------------ # 单引号字符串的限制,双引号没有这些限制:# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的# 单引号字串中不能出现单引号(对单引号使用转义符后也不行)name="w

  • shell脚本编程之循环语句

    在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的. 一.for命令 格式:for 变量 in 列表:do 循环体 done for命令会遍历列表中的每一个值,并且在遍历完成后退出循环. 列表形式有以下几种: 1.在命令中定义的一系列的值: 2.变量: 3.命令: 4.目录: 5.文件. 实例1: 上例中使用{初始值..结束值}格式来表示一个区间的数值. 实例2:以变量作为列表: 实例3:用命令生成列表: 上例中使用seq命令来生成列表,seq命令的格式为:se

  • shell中的循环语句、判断语句实例

    shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 复制代码 代码如下: #!/bin/bash for file in $(ls /tmp/test/mytest |grep sh)   //for in格式是shell for的基本格式,根js的for in类似 do               //循环开始你就把它当成{  echo $file done             //循环结束你就把它当成} for ((

  • shell脚本编程之循环语句学习笔记

    本篇博客很简单,看一下shell编程使用到的循环语句,包括for循环,while循环,until循环,for后边跟一个变量,然后是一个集合,将集合中的东西赋给这个变量,每次循环执行,这跟java中的foreach很像,while循环和if使用同样的条件判断,满足条件执行语句,until和while相反,不满足条件执行语句,是不是很简单啊,下面看一下代码吧. 复制代码 代码如下: #!/bin/sh #for循环最基本的用法 for var in "hello" "xiao t

  • Shell脚本for循环语句简明教程

    与其他编程语言类似,Shell支持for循环. for循环一般格式为: 复制代码 代码如下: for 变量名 in 列表 do     command1     command2     ...     commandN done 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值.命令可为任何有效的shell命令和语句.in列表可以包含替换.字符串和文件名. in列表是可选的,如果不用它,for循环使用命令行的位置参数. 例如,顺序输出当前列表中的数字: 复制代码

  • 探索PowerShell(十) 循环语句介绍

    PowerShell作为可编程性语言,拥有以下循环语句. 注:本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解. • for (初值;表达式;赋值语句) {代码} 用变量值控制执行次数 • foreach (成员变量 in 数组) {代码} 利用迭代执行代码 • foreach-object 对一组输入的每个对象执行运算 • while(表达式) {代码} 表达式为真时循环执行代码 • do {代码} while(表达式)

  • Python循环语句介绍

    目录 什么是循环呢? Python之While循环 Python之for循环 for循环遍历列表/字典的操作: for循环嵌套使用: 什么是循环呢? 简单理解,循环就是反复的去做某一件事情.生活中的例子:比如我们听歌的时候,在歌曲的页面就会出现单曲循环.列表循环.随机播放以及顺序播放等. Python中循环语句的逻辑:执行一个语句/一段代码块多次. 编程语言中,循环语句的一般形式如下: Python之While循环 while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处

  • Ruby简明教程之循环语句介绍

    循环结构在编程语言中是不可或缺的,所以Ruby中的循环也有其自定义的规则. 而我们关注循环结构,要知道两个因素:1) 循环的条件:2) 循环执行的内容 Ruby有一些方式来实现循环结构体: 1. times方法 在前面已经有提到过了,语法如下: 复制代码 代码如下: 循环次数.times do                    循环次数.times {       重复执行的动作                          重复执行的动作               end      

  • Python基础之循环语句相关知识总结

    目录 一.循环语句介绍 二.循环语句的分类 三.循环控制语句 四.while循环 五.break和continue 六.for循环 七.pass语句的使用 一.循环语句介绍  1.循环语句理解 循环语句允许我们执行一个语句或语句组多次,可以让我们的代码重复的去执行. 2.循环语句示意图 二.循环语句的分类 三.循环控制语句 四.while循环 while循环解释:判断语句的条件是否为真,如果为真,则执行代码,然后再次判断条件,直到条件为假为止,循环结束. 1.while死循环 # 死循环示例 w

  • Java中for、while、do while三种循环语句的区别介绍

    本文通过实例讲解给大家介绍Java中for.while.do while三种循环语句的区别,具体详情如下所示: 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: class Dome_For2{ public static void main(String[] args) { //System.out.println("Hello World!"); //求1-10的偶数的和 int sum = 0; fo

  • Java语言----三种循环语句的区别介绍

    第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体;   } eg: class Dome_For2{ public static void main(String[] args) { //System.out.println("Hello World!"); //求1-10的偶数的和 int sum = 0; for (int i = 1;i<=10 ; i++ ) { if (i%2 ==0) { //判断语句

  • C语言之循环语句详细介绍

    目录 前言 while语句 do...while语句 for语句 结语 前言 C语言中的循环结构是程序中的一个基本结构. 循环结构可以使我们写很少的语句,让计算机反复执行某一过程. C语言提供了while语句,do......while语句和for语句,可以组成各种不同形式的循环结构. while语句 while语句又称当型循环控制语句 while(表达式) 语句 表达式式循环条件 ,语句是循环体 当表达式的值为真(非0)时,执行循环体语句,否则终止循环.其特点是先判断,再执行. 例如:计算1+

  • C语言一看就懂的选择与循环语句及函数介绍

    目录 选择语句 循环语句 while语句 for循环 do while 函数 选择语句 什么是选择语句呢?只要是你学过编程语言的,就知道选择语句是程序的灵魂之一,差不多大多是的程序都需要用到这个语句. 一般来说,C语言的选择语句的结构是,if .else if. else 每一个条件后面都需要按照标准的语法格式进行书写,其次除了else后面不需要加括号条件之后,其他的都需要加入条件. 看一下下面的严格语法,在书写的过程中,我们需要按照严格标准继续编码,不要随心所欲的写代码,注意格式! #incl

  • 几种有用的变型 PHP中循环语句的用法介绍

    PHP手册中对它的语法定义如下: for (expr1; expr2; expr3) statement 下面说说for语句几种有用的变型. 1.无限循环 首先是人尽皆知的无限循环(亦可称"死循环").由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果. for (;;) { //放置需要不断执行的语句 } ?> 虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都

  • php循环语句 for()与foreach()用法区别介绍

    for 循环是 PHP 中最复杂的循环结构.它的行为和 C 语言的相似. for 循环的语法是: for (expr1; expr2; expr3) statement 第一个表达式(expr1)在循环开始前无条件求值一次. expr2 在每次循环开始前求值.如果值为 TRUE,则继续循环,执行嵌套的循环语句.如果值为 FALSE,则终止循环. expr3 在每次循环之后被求值(执行). 每个表达式都可以为空.expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE).这

随机推荐