Я новичок в скриптинге и программировании 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.....