【问题标题】:Powershell - Piping information into an objectPowershell - 将信息传递到对象中
【发布时间】:2013-10-27 18:39:33
【问题描述】:

如何将我从电子表格中提取的信息通过管道传输到 Powershell 对象中?

$rangeAddr=$startCell + ":" + $endCell
    $sh.Range($rangeAddr).Value2 | foreach {
        New-Object PSObject -Property @{"Build"=$sh.Name;"AppName"=$_;}
    }

【问题讨论】:

  • 您使用的是哪个版本的 PowerShell,以及您发布的脚本没有按预期工作。顺便说一句,"Build""AppName" 周围的双引号不是必需的,最后一个分号也不是。
  • 我在企业机器上使用 1.0(无法升级) - 我正在尝试从我从 Excel 电子表格中提取的数据创建一个对象
  • 您是否遇到了错误或不是您预期的结果?我假设你真的想要工作表的名称吗?而对于 AppName,您想要单元格内容吗?
  • 是的,我目前没有收到任何错误。理想情况下,我想创建一个具有四个属性的对象?这有多可行?
  • 我不知道你怎么不会得到错误,因为在 PowerShell 1.0 中的 New-Object 上有 no -Property 参数。

标签: excel powershell


【解决方案1】:

我相信从哈希表创建对象是在 V2 中,但不是 V1。

这行得通吗?

$rangeAddr=$startCell + ":" + $endCell
    $sh.Range($rangeAddr).Value2 |
      foreach {
        $NewObject = "" | Select Build,Name
        $Newobject.Build    = $sh.Name
        $NewObject.Name  = $_ 
        $NewObject
       }

【讨论】:

  • 谢谢。它工作得很好。是否可以在电子表格中添加第三/第四列,其中包含来自 J/K 列的信息(相同的开始/结束单元格)?
  • 我确定是这样,但我没有使用 com 来告诉你我的头脑。
  • 我认为您在使用Select Build,*Name* 和后来使用$NewObject.*AppName* 之间存在问题。那些应该是一样的。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2021-04-01
  • 2019-05-31
  • 2021-10-22
  • 2014-09-18
  • 1970-01-01
相关资源
最近更新 更多