我有一个csv,其中有一些已分配了编号的键。当我将一个键添加到csv时,它将被分配下一个值。
我的代码执行了所有这些操作,但由于我无法获取返回已分配数字最大值的代码而导致计算错误。
我的csv看起来像:
Key,Count
9383, T-1
V-102,T-2
V-4982,T-65
85712, T-13
我的代码是:
$num = Import-Csv "$file1.csv" | Foreach {"$($_.Count)"}
for ($i=0; $i -lt $num.Count; $i++)
{
[string]$assignednumbers = $num[$i]
#Remove T in front of numbers
[string]$prefix = "T-"
if ($assignednumbers.StartsWith($prefix))
{
$assignednumbers = $assignednumbers.Replace($prefix, [string]::Empty)
}
$greatestvalue = ([int]$assignednumbers | Measure -Maximum).Maximum
}
我有线路问题,$greatestvalue = ([int]$assignednumbers | Measure -Maximum).Maximum
当我打电话$greatestvalue
只有$greatestvalue = [int]$assignednumbers | Measure -Maximum
我获得最大的属性列表在我的CSV每个项目。它应该返回65的值。
这是我要求添加数字并将其添加到csv的位置(此处没有问题)
#which key do you want to add
$key = Read-Host "Please Input new Key"
#getting t number
$addingnum = $greatestvalue + 1
$newnumber = "T-$addingnum"
#Get new key information
if ($key -gt 0)
{
[string]$key =$key
write-host -foregroundcolor green "The new Key is $key and has been assigned $newnumber"
}
#add vkey from input to csv
$NewLine = "{0},{1}" -f $newvkey,$newnumber
$NewLine | add-content -path "
您$greatestvalue
每次都覆盖您的内容。您需要在周期之外定义它,并且仅在当前值大于上一次迭代中已有的值时才进行更改:
$num = Import-Csv "E:\1.csv" | Foreach {"$($_.Count)"}
$greatestvalue = 0
for ($i=0; $i -lt $num.Count; $i++)
{
[string]$assignednumbers = $num[$i]
#Remove T in front of numbers
[string]$prefix = "T-"
if ($assignednumbers.StartsWith($prefix))
{
$assignednumbers = $assignednumbers.Replace($prefix, [string]::Empty)
}
if ($greatestvalue -lt ([int]$assignednumbers | Measure -Maximum).Maximum)
{
$greatestvalue = ([int]$assignednumbers | Measure -Maximum).Maximum
}
}
$greatestvalue
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句