在PowerShell中调用动态变量

2023-12-07

我正在尝试创建一个新变量,该变量将使用具有动态名称的其他变量作为其值。这就是我想做的:

我有一个包含两个值的 System.Array:

$Years = 2015, 2016

另一个变量,$Transactions有各种交易的清单。

我尝试按以下方式使用每个 $Years 值:

foreach ($Year in $Years){
   New-Variable -Name "Transactions_$Year" -Value $Transactions |
     Where {$_.Date -like "*.$Year"}
}

现在我想做的(在同一个范围内)foreach循环)就是使用它$Transactions_$Year当我创建另一个新变量时的值,如下所示:

New-Variable -Name "Income_$Year" -Value $Transactions_$Year |
  Where {$_.Amount -NotLike "-*"} | 
    Measure-Object Amount -Sum | Select -ExpandProperty Sum

这可能吗,或者您有其他方法可以实现这一目标吗?


首先,你的New-Variable调用不会做你想象的那样,因为你会通过管道输出New-Variable to Where-Object而不是使用的值$Transactions | Where ...作为变量的值。您需要括号才能起作用:

New-Variable -Name "Transactions_$Year" -Value ($Transactions | Where {$_.Date -like "*.$Year" })

如果您绝对必须使用这种方法,那么您可以通过以下方式再次获取变量Get-Variable:

Get-Variable Transactions_$Year | % Value

然而,使用具有魔法名称的多个变量是解决这个问题的一种相当糟糕的方法。您可能更想要一张地图:

$TransactionsPerYear = @{}
$Years | ForEach-Object {
  $TransactionsPerYear[$_] = $Transactions | Where Date -like "*.$_"
}

您可以通过以下方式获取 2015 年的所有交易$TransactionsPerYear[2015].

另一种方法是Group-Object它甚至不需要一开始就列出可能的年份,而是通过某些属性或表达式结果对多个对象进行分组:

$TransactionsPerYear = $Transactions | Group-Object { [int]($_.Date -replace '.*\.') }

(这是对其如何工作的猜测。似乎您的日期字符串包含一段时间的内容,之后是年份,没有其他内容,所以也许类似dd.MM.yyyy日期格式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在PowerShell中调用动态变量 的相关文章

随机推荐

  • .NET Core 在另一个单例服务中注入单例服务

    我在用StackExchange Redis从 NET Core 连接到 Redis 服务器 如何注入单例IConnectionMultiplexer到另一个单例服务 启动 cs public void ConfigureServices
  • 如何在 iPhone 中使用 Base64 解码数据

    你好 我的朋友在java中使用Base64编码标准 我正在使用 iPhone 如何解码数据 反之亦然 java中有org apache commons codec binary Base64 decodeBase64 谢谢 迪帕克 触摸码有
  • 如何在 Pyspark 中使用 dataframe 中的函数 withColumn 函数?

    我定义了一些字典和一个函数 dict TEMPERATURE 0 70 Low 70 01 73 99 Normal Low 74 76 Normal 76 01 80 Normal High 80 01 300 High hierarch
  • 递归是如何返回的?

    我正在努力更深入地理解递归 并且正在努力理解为什么它会这样工作 我知道这个函数返回前一个返回值的平方 2 4 16 256 等 但我想知道它是如何得到答案的 我对递归的理解是它迭代回到基本情况 但这让我相信它最终总是会返回基本情况 它是如何
  • 将大括号表达式替换为表达式中的一项

    这是一个示例字符串 three fifteen one hundred this is the first random number and this is the second two four 从括号中 我需要返回一个随机值 例如 O
  • PHP - spl_autoload 和命名空间 - 不适用于大写字母

    我在我的电脑中设置了一个非常基本的自动加载器index php获取其中的命名空间类hello php 我的开发环境是乌班图12 04 我为什么要尝试这样做 我正在努力坚持PSR 1 and PSR 2编码标准 包括了 类名必须在 Studl
  • IEnumerable 与 IQueryable

    我有一个疑问 topics OrderBy x gt x Replies Any x Replies OrderBy y gt y PostedDate Last PostedDate x PostedDate 它按最后回复对主题集合进行排
  • 为什么我的 SFINAE 表达式不再适用于 GCC 8.2?

    我最近将 GCC 升级到 8 2 我的大部分 SFINAE 表达式都停止工作了 下面的内容有些简化 但说明了问题 include
  • 使用远程验证 asp.net MVC

    我喜欢尝试使用我在此链接上发现的远程验证 http www youtube com watch v Ll8VtDRj8L4 我已按照说明进行操作 并且有效 但问题是 当我尝试从引用表添加数据时 验证不起作用 型号类别 public part
  • 调用未定义的方法 Illuminate\Database\Query\Builder::save()?

    我在尝试保存模型后收到此错误 这是我收到的错误 调用未定义的方法 Illuminate Database Query Builder save 这是我的代码 public function getActivate code user Use
  • Flutter :- HTTP 文件发布示例:图像

    Future userPasswordUpdate async String passwordU password text String confirmPasswordU confirmPassword text String oldPa
  • Groovy:为具有属性集合的对象集合动态创建 XML

    我有一组具有属性的字段 每个属性都是单个值或对象的集合 可为 null 一个或多个 我需要为此创建一个类似 xml 的树 到目前为止 我发现的所有示例要么是静态的 要么是将映射转换为 xml 在循环中向 xml 添加节点的正确方法是什么 您
  • 根据第一列值合并两个索引数组的索引数组

    我有两个这样的数组 array1 10 Some Name 11 Some Name 13 Some Name array2 13 Viewed 如何在不循环的情况下合并这两个数组 有没有可用的 php 功能 我需要这样的输出 10 Som
  • 无法解析的外部符号,但 dumpbin 说没问题

    我下载了Crypto 5 62 并使用默认项目设置构建它 在我的项目中我设置了路径cryptopp lib并在 附加依赖项 中定义了它的名称 Crypto 和我的项目 VS 2008 在构建我的项目期间我得到 main obj error
  • Django 1.7 ImageField 表单验证

    我正在使用 Django 1 7 和 Python 3 4 编写单元测试 下面的表格可以很好地验证file data元素被注释掉 随着file data包括它不验证并且测试失败 from django core files uploaded
  • AppEngine 中任务队列的默认值是什么?

    假设我在我的队列中创建了一个新队列queue yaml文件为 queue name my queue 指定所有参数的等效队列是什么 这是我可以从docs so far queue name my queue mode push bucket
  • 计算次太阳点

    我刚刚开始使用PyEphem 我当前的任务是 给定日期和时间 计算地球上的亚太阳点latitude longitude价值观 我会深入研究PyEphem来解决这个问题 但如果有人已经这样做了 我会很感激示例代码 我去寻找与OP相同的答案 许
  • 如何在 pyspark 中启动 SparkSession

    我想更改 Spark 会话的默认内存 执行器和核心设置 Jupyter 中 HDInsight 集群上的 pyspark 笔记本中的第一个代码如下所示 from pyspark sql import SparkSession spark S
  • 将 glassfish javax.persistence 添加到 gradle 项目

    我收到这个错误 梯度构建 ant javac Hello java 2 错误 包 javax persistence 不存在 Hello java 2 导入 javax persistence 我应该添加到 gradle build 中以包
  • 在PowerShell中调用动态变量

    我正在尝试创建一个新变量 该变量将使用具有动态名称的其他变量作为其值 这就是我想做的 我有一个包含两个值的 System Array Years 2015 2016 另一个变量 Transactions有各种交易的清单 我尝试按以下方式使用