%20%E8%84%9A%E6%9C%AC%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E5%AE%83%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我正在构建一个 PoSh 启动脚本,用于初始化几个计划任务。一个任务在用户登录时触发,另一个任务在空闲时触发。两个任务都会再次运行脚本。启动时只需要脚本的第一部分,但其他时间应该运行整个脚本。
脚本如何确定是在启动时运行还是稍后运行?
答案1
我也推荐使用参数选项。创建两个计划任务,一个在启动时运行,调用开关-AtStartup
。然后,您可以创建第二个任务来调用不使用开关的脚本。参数的开关类型就是为此目的而构建的。
Function Start-Task {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$paramOne,
[Parameter(Mandatory=$True)]
[string]$paramTwo,
[switch]$AtStartup
)
if ($AtStartup) {
#Do startup activities....
Test-Connection -ComputerName Localhost
}
#Rest of script work
}
答案2
你可以使用
[System.Environment]::TickCount
获取系统启动以来经过的毫秒数。