我想找到一种方法来使用命令提示符在 60 秒内关闭程序。类似于计算机定时关机 (shutdown /s /t ) 和 taskill。
有什么想法吗?这可能吗?
答案1
我怎样才能在 60 秒内关闭一个程序?
您可以使用ping
或timeout
来产生时间延迟。
timeout
在 Windows XP 中不可用。timeout
给你一个倒计时。
ping
解决方案
要在 60 秒后终止,notepad
请使用以下命令:
ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe
笔记:
- 您需要 ping 61 次,因为每个 s 之间有 1 秒的延迟
ping
。
例子:
F:\test>time /t && ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe && time /t
17:56
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 8084.
17:57
带有环回地址的 PING 命令也会产生延迟,每次连续 ping 之间会有 1 秒的延迟。在测试中,PING 消耗的处理器时间比 Sleep.exe 或 Timeout.exe 少,这允许其他进程在后台运行。只能使用 Ctrl-C 中断 PING 命令。来源:Clay Calvert (usenet 2001.)
例如延迟 40 秒:
PING -n 41 127.0.0.1>nul
来源暂停
timeout
解决方案
要在 60 秒后终止,notepad
请使用以下命令:
timeout /t 60 && taskkill /im notepad.exe
笔记:
timeout
在 Windows XP 上不可用。timeout
执行得不好。如果您执行“超时 1”,它将等到“下一秒”,这可能发生在 0.1 秒内。尝试执行“超时 1”几次并观察延迟的差异。对于 5 秒或更长时间,这可能不是什么大问题,但对于 1 秒的延迟,它工作得不好。
例子:
F:\test>time /t && timeout /t 60 && taskkill /im notepad.exe && time /t
18:07
Waiting for 0 seconds, press a key to continue ...
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 5412.
18:08
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 暂停- 延迟执行几秒钟或几分钟,以便在批处理文件中使用。
- 平- 测试网络连接 - 如果成功,ping 将返回 ip 地址。
- 如何在 Windows 命令提示符中休眠 5 秒?(或 DOS)
答案2
尝试使用任务计划程序。
- 配置事件日志,以便在启动所需程序时引发事件。
- 配置计划任务,在记录 #1 中的特定事件时运行。在计划任务中,可以设置延迟(在您的情况下为 60 秒)并且可以启动任何命令/脚本。
答案3
试试我的例子:
choice /t 5 /d a /c ab /n >nul & taskkill /im URprocess.exe
解释:“choice”等待5秒后退出,然后taskkill关闭“URprocess”
答案4
我使用 Windows 10 附带的 scriptrunner.exe。我不得不搜索我的,但它不在路径中。您可以在以下位置找到文档https://ss64.com/nt/scriptrunner.html
我经常将一堆电子书转换成 epub,但转换经常在半途卡住。所以我制作了一批内容如下的电子书。
@echo off
for /F "delims=" %%a in (files.txt) do (
if not exist "%%a.epub" ScriptRunner.exe -appvscript "c:\Program Files (x86)\calibre2\ebook-convert.exe" "%%a" "%%a.epub" -appvscriptrunnerparameters -timeout=60
if exist "%%a.epub" del "%%a"
)
Files.txt 包含所有需要转换的文件及其路径。我使用 calibre 的 ebook-convert.exe 进行转换。参数 -timeout=60 是执行停止的时间(以秒为单位)(此处为 60),如果转换提前完成,则执行下一行。
一切运行良好。