Powershell强制转换数组对象和更改数据类型

时间:2016-07-22 16:54:53

标签: arrays csv powershell

我需要比较两个powershell字符串数组(来自import csv)。 他们是这样的:

Array 1  / File 1
"Date","Descrption","Amount"
"05/12/2016","Desc1","-40.00"
"05/15/2016","Desc2","-50.00"

Array 2  / File 2
"Date","Description","Amount"
"5/12/2016","Desc1","-40"
"5/15/2016","Desc2","-50"

如果仔细观察,记录是相同的,在使用比较对象时需要匹配。

那么,有没有办法可以将每个记录中的第一个对象转换为日期,将第三个对象转换为数字,在同一个数组或数组中。

我也可以忽略在投射时发现的任何错误(空日期或数字)。

谢谢!

PS。专门寻找像

这样的东西
 import-object file1.csv | for-each object { cast $_.Date as date, ignore errors, cast $_Amount as number, ignore errors }

1 个答案:

答案 0 :(得分:2)

听起来你想利用 -as 运算符将数据转换为对象。

'06/07/2015' -as [datetime]
'Wont Work' -as [datetime]

10.00 -as [int]
'Wont Work' -as [int]

这样做的好处是,如果失败,它将不会抛出错误(但不会显示数据,只是为空)。

 public Vector2 WorldToGuiPoint(Vector2 position)
     {
         var guiPosition = Camera.main.WorldToScreenPoint(position);
         guiPosition.y = Screen.currentResolution.height - guiPosition.y;

         return guiPosition;
     }