【发布时间】:2018-10-10 06:24:32
【问题描述】:
我是 Powershell 脚本和编程方面的新手。我需要执行以下操作:
- 有一个包含行数的文本文件,每一行都有用逗号分隔的元素。现在,有些行总是以“BB”开头,可能有数百个“BB”行。当它是“BB”时,我需要做一些改变等等。
我想遍历所有行,如果它以“BB”开头,那么我会做一些事情。下面只是一个测试代码,因为我不知道在这里做什么。我怎样才能以最有效的方式做到这一点,以便它快速且性能较低 开销。
更新:现在,问题是“BB”行的第一个实例(奇怪)的日期没有更新。这是我写的更新代码:
现在,我应该在“Foreach”循环之后写出文件,因为它会一次又一次地写入文件。此外,何时使用管道字符 (|)。
$path = 'C:\CE\InputFile\file_test1.txt'
$Filedata = Get-Content $path
$CurrentDate = (Get-Date).ToString("yymmdd")
foreach($Row in $Filedata){
if($Row.split(",")[0] -eq "BB")
{
$Row2Date = $Row.Split(",")[4]
$Temp = $Filedata -replace $Row2Date, $CurrentDate |
Out-File C:\outdata\outputfile1.txt
}
}
AA, field1, field2, field3, field4, field5.....
BB, field1, field2, field3, field4, field5.....
CC, field1, field2, field3, field4, field5.....
DD, field1, field2, field3, field4, field5.....
BB, field1, field2, field3, field4, field5.....
【问题讨论】:
-
如果文件是逗号分隔的,为什么不使用 Import-Csv 在必要时插入虚拟标题?
-
嗨@LotPings,这就是问题所在。我无法在文本文件中插入虚拟标题。
-
月份格式说明符必须为大写
(Get-Date).ToString("yyMMdd")
标签: arrays powershell collections iteration powershell-3.0