首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Powershell学习札记四

2012-08-27 
Powershell学习笔记四1.创建数组?a,b,c? 字符串数组?1,2,3??????? 整数数组?@()????????? 空数组? @

Powershell学习笔记四

1.创建数组
?"a","b","c"? 字符串数组
?1,2,3??????? 整数数组
?@()????????? 空数组? @(2)? 一个元素的数组
?1,(2,3),4??? 数组包含数组
?,"hello"???? 一个元素的数组
?$a[2..20]??? 返回从第3个元素到第21个元素
?数组下标从零开始。
?
a.要创建指定大小的数组,使用New-Object命令
?? $myArray = New-Object string[] 10
?? $myArray[5] = "hello" ;

b.创建一个交错的多为数组(一个数组的数组),可以使用@()数组语法。
? $myArray = @((1,2,3,4),(5,6,7,8));
$myArray[1][2];???????? 返回 :7
$myArray[0][1];???????? 返回 :2
<#
交错数组的分析图:

????????? 0?????????????????? 1???????????????? 2???????????????? 3
0???????? 1?????????????????? 2???????????????? 3???????????????? 4
1???????? 5?????????????????? 6???????????????? 7???????????????? 8???
#>
创建一个交错数组
$a = @(,(,1))?? $a[0][0]? 返回:1

b.创建一个(非交错)多维数组,使用New-Object命令
?$multid = New-Object "int32[,]" 2,4
?$multid[0,0] = 2;
?$multid[1,3] = 8;

注意:要检查列表是否包含指定的项,使用-contains运算符。

c.合并数组:要合并数组,需要使用加法运算符(+)
?$firstArray = "a","b","c","d";
?$secondArray = 1,2,3,4 ;
?$thirdArray = $firstArray + $secondArray ;

d.使用运算符-ne、-notlike和-notmatch从数组中移出元素。
? $array = "a1","a2","ac","a3","a2";
? $array -notlike "*1*";
? $array = $array -ne "a2" ;(实际改变数组的值)

2.用户交互
a.读取用户输入的一行,使用Read-Host命令:
? $directory = Read-Host "Enter a directory ";
?? Enter a directory :d:\temp

b.读取用户输入的按键
? $key = [Console]::ReadKey($true);
? $key

c.在交互比较频繁的情况下(比如你关心用户按下的是向上键或向下键)
? $key = $Host.UI.RawUI.ReadKey("NoEcho,IncludekeyDown");
? $key
? $key.ControlkeyState
?
3.为长时间运行的任务提供进度更新
#为长时间命令显示状态更新
$actity = " A long-running operation";
$status ="Initializing";
#Initialize the long-running operation
for($counter = 0 ; $counter -lt 100 ; $counter++ )
{
?? $currentOperation = "Initializing item $counter" ;
?? Write-Progress -Activity $actity -Status $status `
?? -PercentComplete $counter `
?? -CurrentOperation $currentOperation
?? Start-Sleep -Milliseconds 20 ;
}

4.跟踪和错误管理
a.若要访问到目前为止生成错误的列表,需要使用$error变量
?$error.Count ;
?$error.Clear();
?注意:若想在表和列表中查看错误(Format-Table或Format-List)必须指定-Force以重写自定义的试图。
b.若要写入警告和错误,分别使用Write-Warning和Write-Error命令。使用throw语句生成一个终止错误。

?

5.查看和修改环境变量
a.查看环境变量:dir env:
b.访问环境变量:$env:path
c.若访问的环境变量值是在计算机或用户级别配置的,可以使用
? [Environment]::GetEnvironmentVariable("path","User");
d.要永久性地设置这些计算机或特定于用户的环境变量,可以使用
? [Environment]::SetEnvironmentVariable(<variable>,<value>,<target>);
e.若要确定常见的系统路径和特殊文件夹的位置,可以使用
? [Environment]::GetFolderPath("System");
注意你可能不具备所有提供的这些代名词,所以查看所有这些值的一种方法是使用[Enum]::GetValues();
[Enum]::GetValues([Environment+specialFolder]);

热点排行