Aufbauend auf my previous question (dank @MartinBrandl), würde Ich mag die Zeitwerte greifen Zeit als auch zu berechnen.berechnen Zeit aus dem Dokument
Beispieldaten:
07:30 - 07:45PMTS09526052 | Sev9 | Location| | Due: 12/23/2016
NON PC HARDWARE - TROUBLESHOOT SW
Complete this Job
Martin Brandl kam mit dieser zu den anderen Daten, die ich brauche zu bekommen:
Select-String $WLDir -pattern '(PMT[S|T]\d{8})' -Context 0,2 | ForEach-Object {
[PSCustomObject]@{
Time = $_.Matches.Groups[1].Value
Topic = $_.Context.PostContext[0]
Status = $_.Context.PostContext[1]
}
} | ConvertTo-Csv -NoTypeInformation
Ich möchte von rechts vor dem PMT
Teil des 07:30 - 07:45
Bit greifen . Ich plane, diese zu verwenden, um die Zeit zu bekommen:
$StartTime = [However I get the `7:30` here]
$EndTime = [However I get the `7:45` here]
$ElapsedTime = (NEW-TIMESPAN –Start $StartTime –End $EndTime).TotalHours
und ich würde ein viertes Feld zum CSV hinzufügen:
Elapsed = $ElapsedTime
Aber ich bin nicht sicher, wie speziell die beiden Zeiten zu packen und isoliere sie als Variablen. Kann jemand helfen?
' '(PMT [S | T] \ d {8})'' -> ' '(\ d {2}: \ d {2}) - (\ d {2}: \ d {2}) (PMT [S | T] \ d {8}) '' und passen Sie die Gruppennummern entsprechend an. –
@AnsgarWiechers wie immer, danke.Ich bin mir nicht sicher, was wir hier machen. Wenn du mir sagst, ich solle '' (PMT [S | T] \ d {8}) ''durch'' ersetzen (\ d {2}: \ d {2}) - (\ d {2}: \ d {2}) (PMT [S | T] \ d {8}) ''das ersetzt das erste Feld mit nur der Startzeit. Ich möchte mir die Zeit nehmen, um die verstrichene Zeit zu berechnen und sie in ein anderes Feld in der CSV-Datei einfügen. Ich brauche immer noch die PMT im Feld "Zeit". Ich brauche die berechnete Zeit, um ein eigener Eintrag in der CSV zu sein. – Nate
Die Klammern in den regulären Ausdrücken definieren Erfassungsgruppen, mit denen Sie auf die erfassten Gruppen als '$ _. Matches.Groups []' verweisen können. Index 1 gibt Ihnen die Startzeit, so erhalten Sie die Endzeit von Index ... –