【问题标题】:powershell hash building from an array从数组构建powershell哈希
【发布时间】:2016-04-07 22:45:00
【问题描述】:

标题:带有数组和哈希的 powershell forloop?

我知道如何在 perl 和 unixshell 中做到这一点。我在powershell中看不到它。所以我会问。

我会保持我的问题简单。 如果我有一个列表,我想创建一个哈希,其中键是列表的元素,值是属性。

就像我有一个由 7 个矮人服务器组成的阵列

$d = ( "happy", "sleepy", "sneezy", "doc", "grumpy", "dopey", "bashful" )

我想以英寸为单位计算他们的身高:d_height{ "happy" } = "40"

看起来很简单?好的。但是如果列表是动态生成的,那么散列必须动态生成。怎么样?

....更多细节,如果你想要的话...... 我从 powershell 开始,然后恢复到 perl,因为我知道。

我有一组 7 台矮人服务器

$d = ( "happy", "sleepy", "sneezy", "doc", "grumpy", "dopey", "bashful" )

foreach ( $one ( 0 .. ( $d.count - 1 ))){
   $d[ $one ]
}

好的..好的。现在我想要启动时间。 我已经知道命令了。所以就假装就是这样吧。

$boottime = server.blahblah

现在我恢复到 perl,因为我知道。 (叹气)

foreach ( @d ){
   $boottime =  $d[ $one ].blahblah ;
   if ( $boottime =~ "AM $" or $boottime =~ "PM $" ){
       $d_height{ $d } = $boottime;
   }
       $d_height{ $d } = "unknown";
}

现在我已经处理了被破坏的代码,剩下的就是这里。我去了perl。

foreach $x ( keys( %d_height )){
   printf("%-20s %03d", $x, $d_height{ $x } );
}

我知道....用@{ hash stuff } 格式化表格是...很好。 但那是 perl....

如何在 powershell 中做到这一点?

【问题讨论】:

  • 矮人的身高等于服务器的启动时间?什么?
  • 我有一个列表@A。我想要一个哈希,其中哈希的键是@A。我可以解释我是否像这样对所有内容进行硬连线:@A = ("1","2","3") $H{"1"}="apples" $H{"2"}="unset" $H{"3"}="tomato" 不是硬连线,而是通过一些 powershell 命令即时构建@A。我想动态构建 %H 哈希的键。 (我的问题)。那么我如何使用 %H 的键为 @A 即时构建 %H 哈希?

标签: powershell perl hash


【解决方案1】:

我认为我的答案比问题更容易写。而且我认为这不应该是服务器故障。它应该在编程部分。哦。这就是答案。

$A = ("one","two","three")
PS:C:\> foreach( $one in ( $A)){
>> $one
>> }
>>
one
two
three
PS:C:\>
PS:C:\>$B=@{}
PS:C:\>foreach ( $one in  $A ){
>> $B.$one = "preset"
>> }
>>
PS C:\> $B

Name                           Value
----                           -----
two                            preset
three                          preset
one                            preset

就是这样。除了幽默,我不应该提到小矮人。

【讨论】:

  • 问题应该是:我可以创建一个值数组。我可以更新哈希值。但我想要一个哈希,其中键是从数组值构建的。
  • 那么,你有 2 个长度相等的数组,你想将它们组合/压缩成一个哈希表?
  • 没有。我保持简单。很简单。我有一个数组。我试图制作一个散列,其中新散列的键是从数组中构建的。我可以添加更多文字,但我说的越多,它就越复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多