Powershell 如何创建两个运行时间相差一小时但从不重叠的计划任务?
我需要使用powershell创建两个计划任务,每个任务将运行powershell脚本 每天08:00触发一次,每两小时运行一次。所以在10:00,12:00,14:00等等。。 另一个每天9点,每两小时运行一次。所以在11:00,13:00,15:00等等 如果用户未登录,则应在用户登录后立即触发任务。 假设他在9:35登录,这将触发两个任务。它们怎么能不同时运行呢 我试图为其中一个添加延迟,但延迟可能为0 解决方案可以是:Powershell 如何创建两个运行时间相差一小时但从不重叠的计划任务?,powershell,scheduled-tasks,Powershell,Scheduled Tasks,我需要使用powershell创建两个计划任务,每个任务将运行powershell脚本 每天08:00触发一次,每两小时运行一次。所以在10:00,12:00,14:00等等。。 另一个每天9点,每两小时运行一次。所以在11:00,13:00,15:00等等 如果用户未登录,则应在用户登录后立即触发任务。 假设他在9:35登录,这将触发两个任务。它们怎么能不同时运行呢 我试图为其中一个添加延迟,但延迟可能为0 解决方案可以是: 当它们同时运行时,它们会检查是否存在这种情况,并检查其中一个出口。或
function getlock() {
$file = $null
while($file -eq $null) {
try { $file = [System.IO.File]::Open("c:\temp\flag.txt", "open", "read", "none") } catch {
write-host "waiting..."
start-sleep -seconds 2
}
}
write-host "got lock!"
start-sleep -seconds 5
$file.close()
}
通过将函数加载到两个Powershell会话中并在几秒钟内调用它们来尝试。如果您在任务切换方面有问题,请增加5秒钟的睡眠时间。每个函数都将尝试获取标志文件的独占锁。如果不可能,将抛出异常。游戏后期的进程将休眠两秒钟,然后重试,直到第一个进程释放锁为止。有关文件共享模式的详细信息,请参阅
标记文件有问题,因此要获得更健壮的IPC,请参阅。它是为C#设计的,但也可以为Powershell进行调整。听起来像是家庭作业。;-)到目前为止你尝试了什么?请出示你的密码。你可以看一看,也可以。我添加了我的代码。它不是家庭作业,而是一个更大项目的一部分。这个锁可以与计划任务的pid关联吗?这意味着如果计划的任务结束/失败,或者如果pc在此过程中关机,文件是否会被解锁?能否指定执行此操作的powershell cmdlet?
function getlock() {
$file = $null
while($file -eq $null) {
try { $file = [System.IO.File]::Open("c:\temp\flag.txt", "open", "read", "none") } catch {
write-host "waiting..."
start-sleep -seconds 2
}
}
write-host "got lock!"
start-sleep -seconds 5
$file.close()
}