我仍然是Powershell的初学者。我正在读取从软件生成的标签分隔文本文件,以筛选出一组值。但是生成的值都是类似于IEEE浮点格式的格式。(例如: 1.5656565656E+02)。
我试过'-as'接线员,但没有用。我犯了个错误。请帮助我解决这个问题,或者是否有可能这样做。
我的选项卡分隔文件如下所示
Time [s] Offset_Angle observability_Analysis
0.00E+00 0.89040261167028E+00 0.00000000000000E+00
4.32E+02 0.21319658757004E+00 0.00000000000000E+00
8.64E+02 0.26803683992125E+00 0.00000000000000E+00
1.30E+03 2.67379011780784E+02 1.00000000000000E+00
1.73E+03 2.89704767087971E+02 1.00000000000000E+00
2.16E+03 2.93302157473406E+02 1.00000000000000E+00我正在编写的代码如下所示
$ap = Import-Csv -Delimiter "`t" -Path E:\textreplace.txt
$abc = $ap|where-Object {$_.observability_Analysis -eq "1.00000000000000E+00”}|select-object –property Offset_Angle | Foreach-Object {$_.Offset_Angle = $_.Offset_Angle -as [float] $_ }
$abc|export-csv "E:\results.txt"我正在尝试过滤那些将其Offset_Angle作为1.0000000000000E+00的observability_Analysis值。
对于第二行,它抛出错误,说明
cannot convert the {Offset_Angle = 2.67379011780784E+02} value of type Selected.System.Management.Automation.PSCustomObjectstring.object to [float].请帮我处理这个。
发布于 2015-10-21 09:00:51
您需要在Offset_Angle中展开Select属性,或者在ForEach中显式地针对它,然后转换为float buy use of [float]$variable
以下任何一项都将有效:
$ap | ? { $_.observability_Analysis -eq "1.00000000000000E+00" } | select -expand Offset_Angle | % { [float]$_ }
$ap | ? { $_.observability_Analysis -eq "1.00000000000000E+00" } | % { [float]$_.Offset_Angle }https://stackoverflow.com/questions/33254507
复制相似问题