如何处理环境变量';类型';在Powershell中

如何处理环境变量';类型';在Powershell中,powershell,environment-variables,Powershell,Environment Variables,我有一个powershell脚本,需要在其中获取“下一个数字”。我将当前值保存在环境变量中。例如: $perfRunIndex = [environment]::GetEnvironmentVariable("PPRunIndex","User") $perfRunIndex = $perfRunIndex + 1 [environment]::SetEnvironmentVariable("PPRunIndex","$perfRunIndex","User") $jobName = "Per

我有一个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,打开并运行了脚本,得到了3113111等等。是什么导致环境变量“type”变为“string”?如何确保它始终被视为“数字”?

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

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

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

将变量定义为整数还是双精度?[INT]$Variable、[Double]$Variable
$perfRunIndex=[INT]$perfRunIndex+1
$perfRunIndex=1+$perfRunIndex
环境变量值是字符串。如果您希望PowerShell将环境变量的值视为一个数字,您必须告诉它这样做。为什么还要使用环境变量来存储perfcounter作业信息?对我原始问题的注释才是真正的答案,但我无法将注释标记为答案。此外,也没有办法对这些答复进行投票,但我认为应该这样做。这个“答案”只不过是在应得的时候给予赞扬。