Trochę backstory, dlaczego w pierwszej kolejności używam Regexa:

Pracuję na skrypcie dla wielu klientów, które zostaną zintegrowane z naszą dwutygodniową konserwację. Skrypt jest ustawiony na zmianę daty zaplanowanego zadania do daty uruchamiania skryptu, ale nie wyregulować czasu.

Teraz, że samo w sobie jest łatwe, jednak mamy wielu klientów z wieloma różnymi czasami, że zadanie będzie działać, a ja nie chcę ręcznie zaktualizować każdy skrypt dla każdego klienta, ponieważ jeśli kiedykolwiek zaktualizujemy skrypt, musielibyśmy Ręcznie zaktualizuj go dla wszystkich.

Spotkaj się, aby wybrać ciąg i Regex, aby rozwiązać problem.

Na problem:

Prowadzę poniższy kod

$test = Get-ScheduledTaskInfo -TaskName "Scheduled Shutdown"
$test | Select-String -inputobject {$_.LastRunTime} -Pattern '..:..:..'

Który wyjścił poniżej

10/01/2019 18:30:00

Jednak chcę też rzeczywisty ciąg czasowy, a nie daty. Niezależnie od tego, co zmieniam wzór, nie mogę dostać go do jedynego wyjścia tylko do czasu.

Używałem witryny o nazwie REGEXR, aby przetestować, a także uruchomić skrypt.

0
Crazyaussie21 29 lipiec 2020, 07:57

1 odpowiedź

Najlepsza odpowiedź
$test = Get-ScheduledTaskInfo -TaskName "Scheduled Shutdown"
(($test | Select-String -inputobject {$_.LastRunTime} -Pattern '..:..:..') -split ' ')[-1]

Podziel strun czasowy w przestrzeni, a następnie wybierz czas

1
James 29 lipiec 2020, 06:22