【问题标题】:How to handle environment variable 'type' in Powershell如何在 Powershell 中处理环境变量“类型”
【发布时间】:2017-06-23 13:43:25
【问题描述】:

我有一个 powershell 脚本,我需要在其中获取“下一个数字”。我将当前值保存在环境变量中。示例:

$perfRunIndex = [environment]::GetEnvironmentVariable("PPRunIndex","User")
$perfRunIndex = $perfRunIndex + 1
[environment]::SetEnvironmentVariable("PPRunIndex","$perfRunIndex","User")

$jobName = "PerfCounter-$perfRunIndex"
Write-Host "`njobname = $jobName ..."

我昨天从 Powershell ISE 运行了几次此脚本,并且在脚本的连续运行中显示了 0、1、2、3。今天早上我打开Powershell ISE并打开并运行脚本,我得到31、311、3111等。是什么导致环境变量'type'变为'string'?如何确保它始终被视为“数字”?

【问题讨论】:

  • 将变量定义为整数还是双精度数? [INT]$变量,[Double]$变量
  • $perfRunIndex = [int]$perfRunIndex + 1$perfRunIndex = 1 + $perfRunIndex
  • 环境变量值是字符串。如果您希望 PowerShell 将环境变量的值视为数字,则必须告诉它这样做。
  • 为什么还要使用环境变量来存储 perfcounter 作业信息?

标签: powershell environment-variables


【解决方案1】:

我通过将 $perfRunIndex 设为 [Int] 类型解决了这个问题

[Int]$perfRunIndex = [environment]::GetEnvironmentVariable("PPRunIndex","User")

(感谢@Bill_Stewart、@BenH 和@guiwhatsthat 对我的问题的回答。)

【讨论】:

  • 我原始问题的 cmets 是真正的答案,但我找不到将评论标记为答案的方法。也没有办法对这些回复进行投票,但我认为应该有。这个“答案”只是为了给予应得的荣誉。
猜你喜欢
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-10
  • 2019-09-29
  • 1970-01-01
  • 2019-04-02
相关资源
最近更新 更多