Bat脚本-timeout 命令(延时执行)

2023-12-05 0 340

概述

做一个延时执行的批处理命令,选用timeout命令来实现,但是碰到一个情况是写完后直接双击运行时,timeout 命令运行不了,每次运行到timeout的时候,命令就会跳到.bta文件的开头重新执行,后来选择管理员权限运行就可以了。

命令-timeout

在命令行中运行

timeout /?

可以得到该命令的说明

C:\\Users\\L>timeout /?

TIMEOUT [/T] timeout [/NOBREAK]

描述: 这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受 一个参数,忽视按键。

参数列表: /T timeout 指定等候的秒数。有效范围从 -1 到 99999 秒。

/NOBREAK 忽略按键并等待指定的时间。

/? 显示此帮助消息。

注意: 超时值 -1 表示无限期地等待按键。

示例:

TIMEOUT /? TIMEOUT /T 10 TIMEOUT /T 300 /NOBREAK TIMEOUT /T -1

问题复现

然后参考大哥们的方法写了以下代码,保存成timeout.bat文件;

@echo off
rem 打印当前时间
echo 当前时间【%time%】
rem 进行延时5s
timeout /nobreak /t 5
rem 延时后的时间
echo 延时后的时间【%time%】
rem 加入需要执行的代码-开始
rem 加入需要执行的代码-结束
pause

双击运行后出现以下界面;

Bat脚本-timeout 命令(延时执行)

一直在重复打印时间;然后我把回显打开后发现;

::@echo off

代码每次运行到timeout这里都没有执行,然后就跳到文件的第一行去了;

Bat脚本-timeout 命令(延时执行)

解决方案

使用管理员权限运行就不会重新跳到第一行

Bat脚本-timeout 命令(延时执行)

总结

bat命令需要查看权限,注意使用win+R进入cmd是具有管理员权限的,但是直接双击打开的bat文件是没有管理员权限的,没有对应的权限,有些对系统级别的控制,会出现奇怪的现象。

您可能感兴趣的文章:

  • shell创建子进程及并行延时执行命令方法
  • 盘点Java中延时任务的多种实现方式
  • Redisson分布式延时队列RedissonDelayedQueue运行流程
  • 生产redisson延时队列不消费问题排查解决
  • 开发中避免延时操作技巧详解

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 DOS/BAT Bat脚本-timeout 命令(延时执行) https://www.u-9.cn/jiaoben/dosbat/100433.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务