zoukankan      html  css  js  c++  java
  • PowerShell 语法


    •   PowerShell 之 教程
      

    PowerShell 中变量、函数命名等不区分大小写,但字符串区分大小写

    powershell 脚本文件 扩展名为 .ps1
    调用操作符 & + Cmd
    Cmd 只能有1个

    PowerShell 交互式
    1. 执行数学运算
    常用的(+ - * / % !)
    2. 执行外部命令 或 脚本
    3. 别名
    可以对 命令、函数起 别名

    PowerShell 语法:
    注释:
    单行注释:
    在每行第一字符出现之前 加 #
    1. 变量
    自定义变量:
    声明:
    $var = value (自动创建,并初始化)
    使用:
    $var
    ${var}
    其他功能:
    1. 给多个变量赋值
    $a = $b = $c = 123
    2. 交换变量的值
    $a = 1
    $b=2

    				$value1,$value2=$value2,$value1
    			3. 查看正在使用的变量
    				ls variable:
    			4. 验证变量是否存在
    				Test-Path variable:变量
    			5. 删除变量
    				del	variable:变量
    		使用命令管理变量:
    			Clear-Variable
    			Get-Variable
    			New-Variable
    			Remove-Variable
    			Set-Variable
    	变量作用域:
    		$global
    			全局变量,在所有的作用域中有效,如果你在脚本或者函数中设置了全局变量,即使脚本和函数都运行结束,这个变量也任然有效。
    
    		$script
    			脚本变量,只会在脚本内部有效,包括脚本中的函数,一旦脚本运行结束,这个变量就会被回收。
    
    		$private
    			私有变量,只会在当前作用域有效,不能贯穿到其他作用域。
    
    		$local
    			默认变量,可以省略修饰符,在当前作用域有效,其它作用域只对它有只读权限。
    			
    2. 数据变量(内置)	
    	数组
    		数组内可以存一切的内容, 是弱类型的语言
    		
    		声明:
    			1) 使用逗号
    				$数组 = value1,value2,...
    				
    				如果数组是连续的数: [可正序可反序]
    					$数组=1..9   --- 1,2,3,4,5,6,7,8,9
    			2) 使用@符号
    				$数组=@(value1,value2,...)
    		访问:
    			数组索引是从0开始
    			
    			$var[Index]
    			
    			Index:
    				取值:
    					-Var.Size()   ~   +(Var.Size() - 1 )
    					
    					值为负时:
    						逆向索引
    						
    				单个元素:
    					访问Index位置的元素
    				多个元素:
    					访问多个索引位置对应的元素,索引之间用','区分
    			$var[start..end]
    				start: 开始位置
    				end: 结束位置
    				
    				输出从start位置到end位置的元素
    				
    		添加:
    			利用 $变量+=值   添加
    		
    		强类型数组:
    			在数组变量前  加类型名
    			[int []] $name=@("A","B")
    				
    	hash表
    		声明(创建):
    			$var = @{key1="value1";key2="value2";...}
    			
    		哈希表中可存储数组:
    			$var = @{key1="value1_1,value1_2,...";...}
    			
    		访问key的值:
    			$var["key"]
    			
    3. 管道
    4. 对象 
    	
    	Powershell中处处皆为对象。
    	对象就会有属性,方法等之称。
    	
    	新建对象:
    		new-object:
    			利用该关键字创建对象,
    5. 控制结构
    	运算符:
    		比较运算符:
    			-eq :等于
    			-ne :不等于
    			-gt :大于
    			-ge :大于等于
    			-lt :小于
    			-le :小于等于
    			-contains :包含
    			-notcontains :不包含
    		求反:
    			-not :	非
    			!	 :	非
    		布尔运算:
    			-and :和
    			-or  :或
    			-xor :异或
    			-not :逆
    	If 条件:
    		条件为真才会执行以下语句
    		
    		1)if(条件){
    			执行语句
    		}
    		
    		2)if(条件){
    			执行语句
    		}
    		Else
    		{
    			执行语句
    		}
    			
    		3) if(条件){
    			执行语句
    		}
    		ElseIf(条件){
    			执行语句
    		}
    	Switch 条件:
    		Switch($value)
    		{
    			匹配值1 {执行语句}
    			匹配值2 {执行语句}
    			匹配值3 {执行语句}
    			匹配值4 {执行语句}
    			
    			Default {执行语句}
    		}
    		
    		支持通配符:
    			*     所有
    		支持正则表达式:	
    			-regex($val)
    		eg:
    
    			$value=18
    			# 使用 Switch 测试取值范围
    			switch($value)
    			{
    				{$_ -lt 10} {"小于10"}
    				10  {"等于10"}
    				{$_  -gt 10} {"大于10"}
    			}
    			
    			#输出
    			#大于10
    6. 循环结构
    	跳出循环关键字:
    		break:  跳出循环语句
    		continue: 跳出本次循环
    		
    	for:
    		for(;;;)     ---- 和 C 一样
    		{
    			执行语句
    		}
    	foreach:
    		foreach (元素  in 集合)
    		{
    			执行语句
    		}
    	while:
    		do-while:
    			do{
    				执行语句
    			}
    			while(条件)
    		while:
    			while(条件)
    			{
    				执行语句
    			}
    	Switch:
    		Switch支持集合循环:
    		eg:
    			$nums = 10..7
    			Switch ($nums)
    			{
    				{($_ % 2) -eq 0} {"$_ 偶数"}
    				{($_ % 2) -ne 0} {"$_ 奇数"}
    			}
    			 
    			10 偶数
    			9 奇数
    			8 偶数
    			7 奇数
    7. 函数
    	任意参数:内部变量$args 接受函数调用时接受的参数,$args是一个数组类型。
    	命名参数:函数的每一个参数可以分配一个名称,在调用时通过名称指定对应的参数。
    	预定义参数:函数在定义参数时可以指定默认值,如果调用时没有专门指定参数的值,就会保持默认值。
    	
    	声明:
    		Function 函数名(参数表args[])  ---- 参数可以写在函数体 ,与 管道写法一致,需要加Param关键字
    		{
    			执行语句
    		}
    	删除:
    		del Function:函数名
    	
    	调用 与 传参:
    		函数名  参数名1 参数名2 ...
    		
    		
    	返回值:
    		1个:
    			return 值
    		多个:
    			{
    				value1
    				value2
    				...
    			}
    			
    			或
    			{
    				value1
    				return value2
    				...      ---- 这里后面的不会返回, 因为return 返回后就直接结束函数了。
    			}
    	管道函数:
    		顺序模式:  --- 效率低
    			将上一个执行结构保留到 $input
    			eg:
    				PS E:mossfly.com> Function output
    				>> {
    				>>    $input
    				>> }
    				
    				PS E:mossfly.com> 1,2,3 | output
    		流模式:	--- 高效率
    			利用begin、process、end 语句块
    			Function 函数名
    			{
    				begin
    				{
    					
    				}
    				process
    				{
    					
    				}
    				end
    				{
    					
    				}
    			}
    8. 错误处理
    9. 字符串相关操作:
    
    	Powershell转义字符表
    		转义字符	描述
    		`n	换行符
    		`r	回车符
    		`t	制表符
    		`a	响铃符
    		`b	退格符
    		`’	单引号
    		`”	双引号
    		`0	Null
    		“	反引号本身
    		
    	定义多行文本
    		@" 字符串 "@
    		
    	
    	字符串操作符:
    		-f 
    			格式化字符串
    			占位符{0},{1},{2},{3},...
    
    		*
    			代表一个字符串
    
    			“PsTips.Net” -like “*”
    		+
    			合并两个字符串
    
    			“Power” + “Shell”
    
    		-replace,-ireplace
    
    			替换字符串,大小写不敏感
    
    			“PsTips.Net” -replace “tip”,”1″
    
    		-creplace
    
    			替换字符串,大小写敏感
    
    			“PsTips.Net” -replace “Tip”,”1″
    
    		-eq, -ieq
    
    			验证是否相等,大小写不敏感
    
    			“Power” -eq “power”
    
    		-ceq
    
    			验证是否相等,大小写敏感
    
    			“Power” -eq “Power”
    
    		-like, -ilike
    
    			验证字符串包含关系,允许模式匹配,大小写不敏感
    
    			“PsTips.Net” -like “p*”
    
    		-clike
    
    			验证字符串包含关系,允许模式匹配,大小写敏感
    
    			“PsTips.Net” – clike “P*”
    
    		-notlike,
    
    		-inotlike
    
    			验证字符串不包含关系,允许模式匹配,大小写不敏感
    
    			“PowerShell” -notlike “PS*”
    
    		-cnotlike
    
    			验证字符串不包含关系,允许模式匹配,大小写敏感
    
    			“PowerShell” -cnotlike “PO*”
    
    		-match,-imatch
    
    			验证模式匹配,大小写不敏感
    
    			“PowerShell” -match “P*”
    
    		-cmatch
    
    			验证模式匹配,大小写敏感
    
    			“Hello” -match “[ao]”
    
    		-notmatch,
    
    		-inotmatch
    
    			验证模式不匹配,大小写不敏感
    
    			“Hello” -notmatch “[ao]”
    
    		-cnotmatch
    
    			验证模式不匹配,大小写敏感
    
    			“Hello” -cnotmatch “[ao]”
  • 相关阅读:
    mac 鼓捣php 多版本切换
    thinkPHP 导出excel 发布正式环境net::ERR_INVALID_RESPONSE
    js 计时显示 倒着 正者 都行
    LNMP 下 php.ini 文件修改后不生效
    Jquery 遍历数组之$().each方法与$.each()方法介绍
    js 去掉字符串最后一个逗号
    js拼接字符串时,字符串首出现undefined的问题
    PHP 暂停函数 sleep() 与 usleep() 的区别
    在IDEA里创建web项目,以及web 项目部署
    spring容器和springmvc容器,以及web容器的关系
  • 原文地址:https://www.cnblogs.com/Kernel001/p/11215357.html
Copyright © 2011-2022 走看看