PowerShell总结

字符串
所有用双引号引上的就是字符串

任意字符串+任意数据类型,结果为字符串

任意数据类型+字符串,结果为 前面的数据类型(a + S)的结果为a的数据类型

在命令当中 -relpace 大小写是不敏感的
在方法当中 .relpace 大小写是敏感的

在字符串当中 -eq 通常用来判断两个字符串是否相等

[string]::IsNullOrEmpty(str) null ""  一次可以进行两次判空

写脚本的时候很少使用命令,都是用的方法,

常用方法与属性
    **属性**
    Length--用于获得字符串长度
    **方法**
    replace--替换字符串
    Equals--和“-eq”命令一样 用于判断两个字符串是否相等,推荐使用方法
    Contains--判断字符串是否包含指定的字符串
    Endswith--判断字符串是否以指定的字符串结尾
    Startswith--判断字符串是否以指定的字符串开始的
    Split()--命令拆分
    SubString--只有一个参数,表示从指定位置开始到字符串结束,两个参数,
    表示从指定位置开始,到指定长度结束
    IndexOf--查找指定字符串在当前字符串第一次出现的位置,
    LastIndexOF--查找指定字符串在当前字符串中最后一次出现的位置
    ToUpper--当前字符串全部转大写
    Tolower--当前字符串全部转小写
    Insert--在指定位置添加指定字符串
    Remove--从指定位置移除指定长度的字符串
    
Powershell也是面向对象的
    
逻辑控制语句
一个括号里面为一个代码块 
一个代码块当中可以嵌套另一个代码块
if当中的且只要有一个条件不为真就会直接false

if正确结构
if-else
if-elseif-else
if-else!!!elseif

逻辑运算符
    或 -or || 当左右两个条件满足其中一个时,条件就成立
    且 -and && 当左右两个条件同时被满足时,条件才成立
    
关系运算符

-eq  等于

-ne 不等于

-gt 大于

-ge 大于等于

-lt 小于

-le 小于等于

[String]::IsNu110rEmpty(str)  判断字符串是否为空

-match  判断字符串是否匹配给定正确的表达式

数字运算符

+ 加运算

- 减运算

* 乘运算

% 求模运算

/ 除运算

+= 相加并赋值

-= 相减并赋值

++ 自增运算

-- 自减运算

#循环控制

while
    while(条件体){
    
    }
for
    for(定义变量;变量判断;变量自增或自减){

}

Break 退出整个循环
continue 退出本次循环 

课后练习题

1.从键盘输入一个字符,判断这个字符是数字,还是大写字母,还是小写字母,还是符号。

while(1 -eq 1){
[char]$a = Read-Host("输入一个字符")#输入一个字符定义为char类型#
if(($a -ge 48) -and ($a -le 57)){
    Write-Output("你输入的是一个数字")
}elseif(($a -ge 65) -and ($a -le 90)){
    Write-Output("你输入的是一个大写字母")
}elseif(($a -ge 97) -and ($a -le 122)){
    Write-Output("你输入的是一个小写字母")
}elseif($a -eq "e")
{
    break
}
else{
    Write-Output("你输入的一个字符")
}
}

2.从键盘输入一个字符串,统计这个字符串当中包含几个大写字母,几个小写字母,几个数字,几个符号

[string]$a = Read-Host "请输入一个字符串"
$b_array = $a.ToCharArray()#将字符串转成字符并放到数组里面#
[int]$big = 0
[int]$small = 0
[int]$num = 0
[int]$other = 0
foreach($d in $b_array){
if($d -ge 48 -and $d -le 57){
 $num++
}elseif($d -ge 65 -and $d -le 90){
 $big++
}elseif($d -ge 97 -and $d -le 122){
 $small++
}else{
 $other++
}
}
Write-Output($num++,$big++,$small++,$other++)

3.计算3位数(100~999)的水仙花数。水仙花数是指每一位的立方体相加等于该数自己,比如153=1^3+5^3+3^3.

for($i = 100;$i -lt1000;$i++){
[string]$d = $i
[int]$a = $d.Substring(0,1)
[int]$b = $d.Substring(1,1)
[int]$c = $d.Substring(2)
if($num =($a * $a * $a)+($b * $b * $b)+($c * $c * $c) -eq $i){
  Write-Output("{0}是一个水仙花数" -f $i)
  }
}

4.字符串判断:从键盘输入一个字符串,判断该字符串是否为可以被转换为有效数字

5.打印99乘法表。

6.一个1000以内的整数,它加上100和加上268后都是一个完全平方数,请问该数是多少

for($i = 1;$i -lt 10000;$i++){
   for($g = 1;$g -lt 100;$g++){
      if(($g * $g) -eq ($i + 100)){
         for($f = 1;$f -lt 100;$f++){
            if(($f * $f) -eq ($i + 268)){
              Write-Output($i)
            }
         }   
      }
   }
}

7.拆分字符串“网络安全空间”,拆分成网络、络空、空间、间安、安全

[string]$i = "网络空间安全"
Write-Host($i.Split("空间安全"),$i.Split("网间安全"),$i.Split("网络安全"),$i.Split("网络空全"),$i.Split("网络空间"))
8.对3、65、22、102、4进行降序排列

$a_array = 3,65,22,102,4
for($h = 0;$h -lt 5 - 1;$h++){
   for($j = 0;$j -lt 5 - $i -1;$j++){
      if($a_array[$j] -gt $a_array[$j+1]){
         $temp = $a_array[$j] 
         $a_array[$j] = $a_array[$j+1]
         $a_array[$j+1] = $temp
      }
   }
}
Write-Output($a_array)

9.计算1000以内所有的质数
#定义为1000以内的数字#
[int]$a=1000
#定义b默认值为1是质数,0是合数#
[int]$b=1
#2这数字是最小的质数,为了方便后面的计算,直接打出来#
write-output(2)
#第一个内循环范围是在3-1000里面,每次内循环结束后都要把$b的值重置为默认值#
#这里是第二次外循环,除了1和它本身,挨个取模,lt小于#
#$i%$j结果如果为0说明是合数,他的结果需要用一个值表示所以用$b=0,然后break结束这次循环进去下一次循环,le于等于#
for($i=3;$i -le $a;$i++){
   $b=1
   for($j=2;$j -lt $i;$j++){
      if($i%$j -eq 0){
      $b=0
      break
      }
   }
   #内循环结束以后如果该数字不是合数,则$b还是默认值1,此时可以确定该数字就是质数#
   if($b -eq 1){
   Write-Output($i)
   }
}

10.设定的总行数line可以随机修改,修改后仍然能打印出line行的直角三角形。

for($i=1;$i -lt 6;$i++){
   for($j=0;$j -lt $i;$j++){
      Write-Host "*" -NoNewline
   }
   Write-Output("")
}

for($i=1;$i -lt 6;$i++){
   for($j=6 - $i;$j -gt 1;$j--){
      Write-Host " " -NoNewline
   }
   for($g=0;$g -lt ($i+$i-1);$g++){
      Write-Host "*" -NoNewline
   }
   Write-Output("")
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值