# powershell 的学习
# 获得帮助相关的
# "Hello World" | Get-Member
# 数据类型
# 如何定义变量
# - 以 $ 符号开头,可以保存任意的管道或者命令的结果到变量中供后续使用,
# - 如果变量存了大量的数据,而不在使用,可以使 $null来释放这些内存空间.
1
# 环境变量:
# 获得所有的环境变量 - Get-ChildItem env:
# 为了在制定的范围内创建变量,在变量前提供SCOPE关键字
# $SCROPE:variable = value
# 访问.net 静态对象 | New-Object 一个新的对象
# [System.IO.File]::ReadAllLines("C:\Users\HFZ1SZH\Desktop\TEMP.txt")
# 加载另外的库文件
# [System.Reflection.Assembly]::LoadWithPartialName("System.Web")
# 使用COM对象
# $objectCom = New-Object -ComObject ProgId
# $excel = New-Object -ComObjext "Excel.Application"
# 获得对象的可用的方法或者属性
# $excel | Get-Member ------ Get-Member -InputObject $excel
# 获得对象的类型 - $excel.GetType().ToString()
# 向对象添加自定义的方法或者属性. - Add-Member
# 向类添加自定义的方法和属性 采用xml 格式,自定义的类型拓展文件
# 流程控制的问题
# - 比较 和 逻辑操作
# -比较运算符: -eq, -ne, -ge, -lt, -le, -like, -notlike, -match, -notmatch, -contains, -notcontains, -is, -lsnot
# -常用逻辑符: -add, -or, -xor, -not
# Get-Help About_operator
# 条件语句控制 if, elseif, else
$temperature = 90
if ($temperature -le 0)
{ "Balmy" }
elseif ($temperature -le 32)
{ "Freezing" }
elseif ($temperature -le 50)
{ "Cold" }
elseif ($temperature -le 70)
{ "Warm" }
else
{ "Hot" }
# Switch 管理条件语句
$temperature2 = 20
switch ($temperature2) {
{ $_ -lt 32 } { "Below Freezing"; break }
32 { "Exactly Freezing"; break }
{ $_ -le 50 } { "Cold"; break }
{ $_ -le 70 } { "Warm"; break }
default { "Hot" }
}
# 使用循环 - for, foreach, while, do
for ($counter = 1; $counter -le 10; $counter++) {
"Loop Number $counter"
}
"==================ForEach Loop==================="
foreach ($file in (dir)) {
"File length: " + $file.Length
}
"==================ForEach-Object Loop==================="
Get-ChildItem | ForEach-Object { "File length: " + $_.FullName }
"==================while Loop==================="
$response = ""
while ($response -ne "Q") {
$response = Read-Host "Type Somthing>"
}
"================== do...while Loop==================="
$response = ""
do {
$response = Read-Host "Input>"
} while ($response -ne "q")
"================== 1..10==================="
# 添加暂停或延迟
# Read-Host "Press ENTER"
#$host.UI.RawUI.ReadKey()
# Start-Sleep 5
# Start-Sleep -Milliseconds 300
#===============字符串与非结构化文本==============================
# 使用'',字面值字符串
# 使用"", 可拓展字符串
# 创建一个多行或格式化的字符串
$myString = @"
This is the first line
of a very long string. A "Here string"
Lets you to create block of test
that span several lines.
"@
# 格式化字符串信息
$formatString = "{0,8:D4} {1:C}`n"
$formatString
$report = "Quantity Price`n"
$report += "======================="
$report
# 字符串的查找
# -like, -match, Contains(), IndexOf()
# 字符串的替换
# str.Replace(), -replace[正则表达式]
“Hello World" -replace '(.*) (.*)', '$2 $1'
# 格式化日期 - Get-Date 的 -Format 参数