executor shutdown不生效(我做了一个bat的文件,是设置关机时间的,但为什么不生效呢 哪位高手帮我看下)

本文目录
- 我做了一个bat的文件,是设置关机时间的,但为什么不生效呢 哪位高手帮我看下
- at 20:00:00 “shutdown -s -t 60“ 怎么不好使
- 为什么在DOS中输入shutdown -s -t 自动关机的命令,出来的却是“shutdown”不是内部或者外部命令
- Python ThreadPoolExecutor 异常中止解决方案
我做了一个bat的文件,是设置关机时间的,但为什么不生效呢 哪位高手帮我看下
执行到3段后,你没有跳出该段,也没有exit。
那么,很显然,执行完3段后,会接着执行2段,也就是取消任务
所以。。。
@echo off& color 0e& mode con cols=40 lines=10& title 关机设置
echo 2.取消设置任务》"1.设置关机时间"& findstr /a:0a ".*" *"1.设置关机时间"& del "1.设置关机时间"
echo.& set /p input=请选择:& color 0b& cls
if "%input%"=="1" goto 1
if "%input%"=="2" goto 2
exit
:1
set /p shuru=请输入设定关机的时间:
at %shuru% shutdown -s -t 0
echo 设置成功,任意键退出& pause 1》nul& exit
:2
echo at /delete /yes
echo 删除成功,任意键退出& pause 1》nul& exit
at 20:00:00 “shutdown -s -t 60“ 怎么不好使
你要打开“计划任务”服务。打开这个服务之前好像还要打开其他服务。
你可以先偿试打开“计划任务”服务。有可能这一步就OK了,其他的以后再说。
用这个定时的shutdown命令其实就是使用系统的“计划任务”,让系统能定时执行某个程序或命令,所以要在启动这个服务的情况下这条命令才会生效,否则无效,就像你现在的情况……
补充:我没有二楼的朋友细心看问题。他说得对的:
at 20:00:00 shutdown -s ——意思是:在20:00关机
shutdown -s -t 60 ——意思是:60秒后关机
不能像你那样设参数的。像我这上面这两条这样的格式才是对的。
为什么在DOS中输入shutdown -s -t 自动关机的命令,出来的却是“shutdown”不是内部或者外部命令
先说下系统自带的关机指令,很多人应该已经知道了,就是shutdown,不带参数执行将会列出它的参数,常用参数为: /s 关闭计算机 /r 关闭并重启动计算机 /f 强制正在运行的应用程序关闭而不事先警告用户 /t xxx 设置关闭前的超时为 xxx 秒。 有效范围是 0-600,默认为 30 另外,在倒计时过程输入shutdown /a可以取消关机或重启,不加/t参数执行则倒计时30秒。 一般需要立即关机可以这样写:(将/s参数换成/r参数就是立即重启) shutdown /f /s /t 0 shutdown支持对远程计算机进行操作,需要使用/m参数,如: shutdown /f /s /m \\test 在30秒后强制将局域网中名为test的计算机关闭 再说下at指令,它的作用是计划在指定时间和日期在计算机上运行命令和程序。在命令行下输入at /?将列出它的帮助信息,在“帮助和支持中心”里有更详细的解释及示例。 假设想实现晚上23:30自动关机,可以这么写: at 23:30 shutdown /f /s /t 0 成功的话会有类似这样的信息回应:新加了一项作业,其作业 ID = 1 要取消这个定时关机的话,有两种方法 方法一、命令行 不带任何参数执行at,将会列出已经设定的内容,记下状态ID号,比如本例为1,然后输入: at 1 /delete 也可以简写为: at 1 /d 不加序列号使用/d参数将会删除所有设定的内容,如果想不经确认删除所有设定的内容,可用:at /d /y 方法二、任务计划 用at指令设定的定时执行指令可在“控制面板”的“任务计划”中看到,要取消的话删除就行了。 如果你只是临时用用,比如只是当天需要定时自动关机,用上述指令就行了。如果需要在一个月中的某几天或每周一甚至是每天执行,就需要再加点参数,仍然举例说明。 例1、每月的1、5、10、15、20号的0点自动关机 at 00:00 /every:1,5,10,15,20 shutdown /f /s /t 0 例2:每周一的23:00自动关机 at 23:00 /every:Monday shutdown /f /s /t 0 例3:每天22:00自动关机 at 22:00 /every:Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday shutdown /f /s /t 0 即使用every参数,例3中的每天自动关机可以简写为: at 22:00 /every:Su,M,T,W,Th,F,Sa shutdown /f /s /t 0 最后解释一下,Windows 2000是不自带shutdown指令的(当然从XP/2003系统里复制一个到System32目录下也能用),拷贝Shutdown.exe到2000系统下AT命令完全可以使用,包括Win2000、Win2000Server。 另,用at指令而不是在任务计划里添加是因为用at指令添加的任务是以系统最高的SYSTEM权限来执行的,不登录也会生效,而在任务计划里添加的任务需要指定管理员帐号密码才能做到不登录也生效,at指令还能用\\computername指定在局域网里的其它计算机上建立自动执行的任务计划,当然前提条件是你有对方机器的管理员帐号和密码。 用以上命令,并命令执行时,系统进入关机倒计时。这时,如果正在工作,不需要关机,那马上在倒计时设置时间内运行“shutdown.exe -a”中止关机命令。也可以建立一个这个命令的快捷方式在桌面上,方便使用。
Python ThreadPoolExecutor 异常中止解决方案
通常情况,我们利用 Ctrl+C 让程序触发 KeyboardInterrupt 异常,中止程序运行。线程池方案下, Ctrl-C 失效,当线程池里的线程任务跑完后,才会触发 KeyboardInterrupt 。
上下文管理协议相当于隐性地省略了 threadPool.shutdown(wait=True) ,同时,程序正常执行完成或出现异常中断的时候,就会调用 __exit__() 方法,接下来进行异常中止的基础。
适用于 Django 等 WEB 应用框架,本身自带多线程,修改全局变量简单,但要注意线程安全。
程序运行中,只需 sign = 1 或者 exiting.set() ,worker 函数则跳过主要运算部分,剩余线程任务将迅速完成,变相达到中止多线程任务的目的。
提交给线程池的每个线程任务 task 加入 threadPool 中,方便后续对 task 进行操作。当 for 循环内的 task 全部提交后,线程会再后台运行,而进程运行至 while 中堵塞,直至 threadPool 中最后一个线程是否 .done() 。若进程堵塞在 while 中接收到 Ctrl+C 的 KeyboardInterrupt 异常,则从后往前取消 threadPool 中所有任务,达到中止目的。

更多文章:
手机版excel表格怎么排序(excel表格怎么排序成自己想要的顺序)
2025年6月12日 13:30
spring festival讲解(Spring festival是什么意思)
2025年11月30日 01:30
深入分析linux内核源码(面试必问的epoll技术,从内核源码出发彻底搞懂epoll)
2026年5月6日 13:30
countif函数使用举例(excel 中countif函数的用法)
2025年11月28日 11:45
excel常用函数和使用要点(excel常用函数的使用方法)
2026年3月6日 02:00
js html 趣味(求一个用html和js做的一个简单摇奖,是那种列出几个图片,然后开始,速度很快,逐渐速度变缓最终留在一个)
2026年2月24日 11:30
turnon和open怎么区分(turn on和open的区别是什么)
2026年8月31日 20:45
黄页仓库767ck(贯通式货架哪家好黄页,贯通式货架哪家好)
2026年8月22日 03:45
微信js开发教程(如何使用Cocos2d-JS引擎快速开发一个微信游戏)
2026年7月19日 19:45
canvas游戏(冒险岛打不开游戏缺少canvas.dll)
2025年6月30日 14:45
jsp学生信息管理系统源码(基于Java web 学生管理系统 最简单的就行 要求实现数据库的增删改查 要求个源代码和包)
2025年7月10日 22:45











