我是新的工作与批处理脚本,我有一个场景,我必须照顾很快。我有一个批处理脚本,负责发送短信给用户。我希望这个批处理脚本运行一天只有一次,无论我尝试执行它多少次。谢谢提前
hlswsv351#
我很好奇。为什么你会要求用户运行批处理文件?你应该看看使用SCHTASKS的调度命令,Windows 10上的任务调度程序。参见:https://www.windowscentral.com/how-create-task-using-task-scheduler-command-prompt如果你坚持用户运行批处理文件,你必须使用某种持久的run-once标志。你可以用下面的逻辑实现一些东西:1.检查特定目录中是否存在名为. runonce-yyyymmdd的文件1.如果该文件不存在,则创建它。内容无关紧要。零字节文件即可。a.如果前一天的. runonce-yyyymmdd文件存在,则将其删除。b.继续执行批处理文件的其余部分。1.如果该文件存在,请停止(因为该批处理文件已经运行了一天)。
SCHTASKS
szqfcxe22#
我相信它是日期时间格式独立的:
:: Run once a day FOR /f "tokens=2-4 delims=/ " %%a IN ("%date%") DO SET today=%%a%%b%%c IF EXIST %today%.day ( @echo Already ran! timeout /T 5 ) ELSE ( del *.day @echo today=%today% > %today%.day the_command_that_will_run_once_a_day.exe )
我在一个批处理文件中使用了这个代码片段,这个文件使用任务调度器每小时运行一次。
2条答案
按热度按时间hlswsv351#
我很好奇。为什么你会要求用户运行批处理文件?你应该看看使用
SCHTASKS
的调度命令,Windows 10上的任务调度程序。参见:https://www.windowscentral.com/how-create-task-using-task-scheduler-command-prompt
如果你坚持用户运行批处理文件,你必须使用某种持久的run-once标志。你可以用下面的逻辑实现一些东西:
1.检查特定目录中是否存在名为. runonce-yyyymmdd的文件
1.如果该文件不存在,则创建它。内容无关紧要。零字节文件即可。a.如果前一天的. runonce-yyyymmdd文件存在,则将其删除。b.继续执行批处理文件的其余部分。
1.如果该文件存在,请停止(因为该批处理文件已经运行了一天)。
szqfcxe22#
我相信它是日期时间格式独立的:
我在一个批处理文件中使用了这个代码片段,这个文件使用任务调度器每小时运行一次。