Powershell數組和哈希表

# Powershell數組和哈希表

# 命令的返回值可以作爲一個數組存儲
# $ipconfig=ipconfig
# $ipconfig

# 使用數組存儲結果
# 可以判斷一個變量是否爲數組
# $ip=ipconfig
# $ip -is [array]
# "abcd" -is [array]
# $str="aaaa"
# $str.ToCharArray() -is [array]
# $str.ToCharArray().Count
# $str.ToCharArray()[0]

# 數組的每一個元素存放的是一個System.IO.DirectoryInfo對象。
# 對於任何一個對象都可以使用Format-List * 查看它所有的屬性和方法。

# 創建數組
# 在Powershell中創建數組可以使用逗號。
# $nums=1,2,3,4;
# $nums

# 對於連續的數字數組可以這樣創建
# $nums=1..10
# $nums


# 數組的多態
# 象變量一樣如果數組中元素的類型爲弱類型,默認可以存儲不同類型的值。
# $array=1,"2012世界末日",([System.Guid]::NewGuid()),(get-date)
# $array


# 空數組和單元素數組
# 空數組
# $arr = @()
# $arr -is [array]
# $arr.Count

#1個元素的數組
# $arr = ,"moss"
# $arr -is [array]
# $arr.Count

# Powershell訪問數組
# 數組的元素可以使用索引尋址,第一個元素的索引爲0
# 第i個元素的索引爲i-1,最後一個元素的索引爲Count-1
# Powershell爲了使用方便,直接可以將 -1 作爲最後的一個元素的索引。
# $books="book1","book2","book3","book4"
# $books[0]
# $books[-1]
# $books.Count
# $books[$books.Length-1]
# $books[$books.Count-1]

# 從數組中選擇多個元素
# $result=ls
# $result[0,5,2]

# 數組的逆序輸出
# $books="book1","book2","book3","book4"
# $books[($books.Count)..0]

# 給數組添加和刪除元素
# 因爲Powershell數組在內存中是順序存儲的,所以數組的大小必須是確定的,這樣才方便分配存儲空間,所以給數組增加元素其實相當於創建一個新的數組,
# 只不過之後會把原來的副本刪除。在當前數組追加元素可以使用“+=”操作符
# $books="book1","book2","book3","book4"
# $books += "book5"
# $books

# 刪除中間的元素
# $num=1..4
# $num=$num[0..1]+$num[3]
# $num
# 0..1是下標


# Powershell複製數組
# 數組屬於引用類型,使用默認的的賦值運算符在兩個變量之間賦值只是複製了一個引用,兩個變量共享同一份數據。
# 複製數組最好使用Clone()方法,除非有特殊需求。
# $chs=@("A","B","C")
# $chsBak=$chs
# $chsBak[1]="H"
# $chs
#
# $chs.Equals($chsBak)

# $chsNew=$chs.Clone()
# $chsNew[1]="good"
# $chs.Equals($chsNew)
# $chs


# Powershell強類型的數組
# [int[]]$num=@()
# $num+=1
# $num+=2
# $num+="5"
# $num+="霓虹"
# $num

# Powershell使用哈希表
# 創建哈希表
# $stu=@{name="naacy";age=1;sex="man"}
# $stu["name"]
# $stu.Count
# $stu.Keys
# $stu.Values

# 在哈希表中存儲數組
# $stu=@{ Name = "小明";Age="12";sex="男";Books="三國演義","圍城","哈姆雷特" }
# $stu

# 在哈希表中插入新的鍵值
# $students=@{}
# $students.Name="xixoqi"
# $students

# 使用哈希表格式化輸出
# Dir | Format-Table fullname,mode

# 表格的每一個列包含四個屬性:
# Expression:綁定的表達式
# Width:列寬度
# Label:列標題
# Alignment:列的對齊方式

$column1 = @{expression="Name"; width=20;label="filename"; alignment="left"}
$column2 = @{expression="LastWriteTime"; width=40;label="last modification"; alignment="right"}
ls | Format-Table $column1, $column2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章