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]”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM