2017-06-23 25 views
1

我有一個PowerShell腳本,我需要'下一個數字'。我將當前值保存在環境變量中。例如:如何在PowerShell中處理環境變量'type'

$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'?我怎樣才能確保它始終被視爲「數字」?

+0

定義變量作爲Interger還是雙? [INT] $ Variable,[Double] $變量 – guiwhatsthat

+2

'$ perfRunIndex = [int] $ perfRunIndex + 1'或$ $ perfRunIndex = 1 + $ perfRunIndex' – BenH

+1

環境變量值是字符串。如果您希望PowerShell將環境變量的值視爲數字,則必須通知它這樣做。 –

回答

1

我通過使$ perfRunIndex是類型[INT]

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

解決了這個問題(感謝@Bill_Stewart,@BenH和@guiwhatsthat這個回答我的問題。)

+0

對我原來的問題的評論是真正的答案,但我無法找到將評論標記爲答案的方法。也沒有辦法對這些答覆進行投票表決,但我認爲應該有。這個「答案」只是爲了在應得的地方給予獎勵。 – PerfTesterJN

相關問題