Windows PowerShell学习笔记(一)

powershell概述

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NETFramework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
powershell是一个shell,定义好了一些命令操作系统,特别是与文件系统交互,能够启动应用程序,甚至操纵应用程序。PowerShell还能允许将几个命令组合起来放到文件里执行,实现文件级的重用,PowerShell 能够充分利用copy.Net类型和 COM 对象,来简单地与各种系统交互,完成各种复杂的、自动化的操作。
打开方式:

  • 附件找到powershell
  • Win + R–>输入powershell

PowerShell-ISE

Windows PowerShell 集成脚本环境 (ISE) 是 Windows PowerShell 的主机应用程序。在 WindowsPowerShell ISE 中,可以在单一 Windows 图形用户界面中运行命令以及编写、测试和调试脚本,该用户界面具有多行编辑、Tab 补齐、语法着色、选择性执行、上下文相关帮助等功能,而且还支持从右到左书写语言。此主机应用程序最多还可以包括八个会话。可以自定Windows PowerShell ISE 的外观。Windows PowerShell ISE 还有自己的 Windows PowerShell 配置文件,您可以在其中存储在Windows PowerShell ISE 中使用的函数、别名、变量和命令。

  • Win + R -->输入powershell ISE

输入与输出

powershell 对大小写不敏感

输入

read-host("请输入XX")

输出

ehco    /  echo()
write-output  /  write-output()
write-error   /  write-error()

弱类型和强类型

弱类型:数据类型根据值的类型定义

强类型:强行规定数据类型,值的类型必须符合数据类型

变量

可以改变的量

变量使用:$变量名

赋值格式:$变量名 = 值

环境变量

$env:变量名
赋值格式: $env:Demo_HOME = “D:\Maven”
ls variable: -->查看环境变量

需要写入环境变量时

  • 写入系统环境变量: [System.Environment]::SetEnvironmentVariable(“name”,“value”,“machine”)
  • 写入用户环境变量:
    [environment]::SetEnvironmentVariable(“name”,“value”,“User”)

运算符

++ 自增运算
-- 自减运算

常量

不能改变的量
常量的申明中不需要加 $ ,但在使用时需要加上。

  • Set-Variable -name 常量名 -Value 常量值 -Option Constant
    常量,存储在栈里
  • Set-Variable -name 常量名 -Value 常量值 -Option readonly
    只读变量,存储在方法区里

数组

一个容器、一个相同数据类型的容器

$数组名=元素1,元素2,元素3
$数组名[下标]
-1 < 下标 <=下 数组长度-1

$array_name=value1,value2,value3      #定义数组,用 逗号 隔开
$array_name=value0..valueN                #连续数字用  ..
$array_name=@()                                  #定义 空数组

字符串

所有用双引号引上的就是字符串
任意字符串 + 任意数据类型 --> 结果为字符串
任意数据类型 + 任意字符串 --> 结果为前面的数据类型,(a + s )结果为a的数据类型

-eq
[String]::IsNullOrEmpty(str)

常用方法与属性

属性
Length   #用于获取字符串长度
方法
Contains(str) --- 验证是否 包含 关系,大小写敏感

Equals(str) --- 判断两个字符串是否 相等

EndsWith(str) --- 判断此字符串是否是以指定字符串 结束

StartsWith(str) --- 判断此字符串是否是以指定字符串 开始

Split() --- 字符串 拆分,以空格 拆分; 或以指定子串 拆分

SubString(start,end) --- 截取 字符串子串

ToUperInvariant() --- 当前字符串全部转 大 写   ToUper() 亦可

ToLowerInvariant() --- 当前字符串全部转 小 写  ToLower() 亦可

Insert(int,str) --- 在指定位置 插入 子串,下标从1 开始

Remove(start,length) --- 删除 从指定位置开始到指定长度的子串,下标从1 开始

Trim() --- 去掉字符串前后 空白格

数据类型

--数字型
  --整数型
  	--字节型 (byte)(1字节)
	--短整型 (short)(2字节)
	--整型  (int)(4字节)
	--长整型 (long)(8字节)

  --浮点数型
	--单精度浮点型 (float)
	--双精度浮点型 (double)
	
	--非数字型
		--字符型(char)
		--字符串型 (string)
		--布尔型 (boolean)

int型只能是数字,如果是被双引号引用的数字会自动转型为int
当字符串中只有一个字符的时候,可以转型为字符。往char存放数字默认为ASCLL值。但字符不会默认转成Ascll码

练习

  1. 计算 $i++ + $i++ + ++i + $i++ + $i 的值,说明原因
 `i++ : 下次运行到 i 处进行+1操作
  ++i : 现在即时对 i 进行+1操作
  /---------------------------/
  	$i++ + $i++ + ++$i         + $i++ + $i 
  	$i   + $i+1 + [($i+1)+1]+1 + $i+3 + ($i+3)+1
  	= 5$i + 11
  1. 使用强类型定义【安全开发生命周期、机械工业出版社、58.50、370(页)、342.63(克)】

  2. 定义变量进行数学操作
    在这里插入图片描述
    在这里插入图片描述

  3. 在Byte类型中存入 -1 ,在 int 类型中存入字符串和小数看看效果
    byte 存入 -1 : 在这里插入图片描述
    int 存入字符串:
    在这里插入图片描述
    int 存入小数:
    在这里插入图片描述

  4. 打印自己的 path 环境变量

Write-Output($env:Path)

在这里插入图片描述
6. 为自己的系统设置一个属于你自己的用户环境变量,变量名为(yourname_home),值为 1

[environment]::SetEnvironmentVariable("XIAN_HOME","1","USER")
  1. 不限定使用强弱类型,定义自己的名字、身高、年龄、专业、学校、毕业时间
$name 
$height
$age
$major
$school
$year
$array_xianrui="xianrui","175cm","23","IOT","nepu","2019"
$array_tian="tian","172cm","22","TAP","sciu","2020"
$array_jiang="jiang","174cm","24","CCS","wpfu","2018"
$array_hemiao="hemiao","177cm","25","RWA","slgu","2017"
$array_group=$array_xianrui,$array_tian,$array_jiang,$array_hemiao
Write-Output($array_group)

在这里插入图片描述

字符串练习

[String]$str="Windows PowerShell"

在字符串最后加上”v 5.1.1“
在字符串最后加上“8362752”

找到752的位置,在前面加上“.”
找到PowerShell的位置,并将其裁剪下来

将“18362.752”替换为2

在“v 5.1.2”前面添加“PSVersion”
删除“PSVersion”

判断版本是否是“5.1.2”,给出truefalse的结果
判断是否包含“Power”这个字符串,给出truefalse的结果
str是否以WIN开头?是否以v 5.1结尾

在str中查找第一次出现o和最后一次出现o的位置
将str转成大写
[String]$str="Windows PowerShell"
Write-Output($str)

$str=$str + "v 5.1.1"
Write-Output($str)

$str=$str + "8362752"
Write-Output($str)

$a=$str.IndexOf("752")
$str=$str.Insert($a,".")
Write-Output($str)

$b=$str.IndexOf("PowerShell")
$l="PowerShell".Length
$str_2=$str.SubString($b,$l)
Write-Output($str_2)

$str=$str.Replace("18362.752","2")
Write-Output($str)

$block=$str.IndexOf(" ")
$str=$str.Insert(1+$block,"PSVersion")
Write-Output($str)

$l_2="PSVersion".Length
$str=$str.Remove(1+$block,$l_2)
Write-Output($str)

Write-Output($str.Contains("5.1.2"))

Write-Output($str.Contains("Power"))

Write-Output($str.StartsWith("Win"))

Write-Output($str.EndsWith("v 5.1"))

Write-Output($str.IndexOf("o"))

Write-Output($str.LastIndexOf("o"))

Write-Output($str.ToUpper())

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/TurborX/article/details/106870067