Powershell:选择字符串&;正则表达式

Powershell:选择字符串&;正则表达式,powershell,scheduled-tasks,windows-scripting,Powershell,Scheduled Tasks,Windows Scripting,关于我为什么首先使用正则表达式的一些背景故事: 我正在为多个客户端编写一个脚本,该脚本将集成到我们的每两周维护中。脚本设置为将计划任务的日期更改为脚本运行的日期,但不调整时间 现在,这本身很容易,但是我们有多个客户端,任务将在多个不同的时间运行,我不想为每个客户端手动更新每个脚本,因为如果我们更新脚本,我们将不得不为每个客户端手动更新它 所以我求助于selectstring和Regex来解决这个问题 关于这个问题: 我正在运行下面的代码 $test = Get-ScheduledTaskInfo

关于我为什么首先使用正则表达式的一些背景故事:

我正在为多个客户端编写一个脚本,该脚本将集成到我们的每两周维护中。脚本设置为将计划任务的日期更改为脚本运行的日期,但不调整时间

现在,这本身很容易,但是我们有多个客户端,任务将在多个不同的时间运行,我不想为每个客户端手动更新每个脚本,因为如果我们更新脚本,我们将不得不为每个客户端手动更新它

所以我求助于selectstring和Regex来解决这个问题

关于这个问题:

我正在运行下面的代码

$test = Get-ScheduledTaskInfo -TaskName "Scheduled Shutdown"
$test | Select-String -inputobject {$_.LastRunTime} -Pattern '..:..:..'
下面是哪个输出

10/01/2019 18:30:00
但是,我只想要实际的时间字符串,而不是日期。 无论我将模式更改为什么,我都无法让它只输出到时间

我使用了一个名为RegExr的网站来测试和运行脚本

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

在空格处拆分时间字符串,然后选择时间

您是否尝试过
$test.Lastruntime.ToString('HH:mm:ss')
这是一个实际的
日期时间
。。。我认为在这种情况下你不应该使用正则表达式。虽然这是有效的,但我很困惑OP并不是简单地使用@Olaf提出的建议。这将事情复杂化到了极点。一个简单的
(Get ScheduledTaskInfo-TaskName“Scheduled Shutdown”).LastRunTime.ToString('HH:mm:ss')
就可以了。