[转][PowerShell]- powershell hashtable 的遍历
如下我们创建一个hashtable
$hash=@{"name"="ff"}
$hash.Add("dd","fffff");
在c#中我们使用下面的句子进行遍历
foreach(DictionaryEntry de in yourHashTable)
{
}
但是在powershell 中此法行不通。
我使用了从下方法
1.使用foreach 遍历keys
foreach($obj in $hash.Keys)
{
"key:"+$obj
"value:"+$hash[$obj];
}
2.使用enumerator
[System.Collections.IEnumerator]$keys=$hash.Keys.GetEnumerator();
while($keys.MoveNext())
{
"key:"+$keys.Key;
"value:"+$keys.Value;
}
3.使用hashtable的copyTo
[System.Object[]]$array=New-Object System.Object[] -ArgumentList $hash.Count;
$hash.CopyTo($array,0);
foreach($item in $array)
{
"key:"+$item.Key;
"value:"+$item.Value;
}
我相信你已经很清楚的知道powershell中hashtable的遍历了。
如果需要了解hashtable的相关知识,请访问:http://technet.microsoft.com/zh-cn/library/ee692803(en-us).aspx
下面我把全部代码贴出:
$hash=@{"name"="ff"}
$hash.Add("dd","fffff");
foreach($obj in $hash.Keys)
{
"key:"+$obj
"value:"+$hash[$obj];
}
[System.Collections.IEnumerator]$keys=$hash.Keys.GetEnumerator();
while($keys.MoveNext())
{
"key:"+$keys.Key;
"value:"+$keys.Value;
}
[System.Object[]]$array=New-Object System.Object[] -ArgumentList $hash.Count;
$hash.CopyTo($array,0);
foreach($item in $array)
{
"key:"+$item.Key;
"value:"+$item.Value;
}
输出:
key:name
value:ff
key:dd
value:fffff
key:name
value:ff
key:dd
value:fffff
key:name
value:ff
key:dd
value:fffff
原文路径:
http://www.cnblogs.com/fmyuan2000/archive/2010/04/22/1717952.html