`
hongzhguan
  • 浏览: 270213 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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]);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics