Bat脚本-timeout 命令

本文介绍了在Windows批处理文件中使用timeout命令遇到的问题,当以普通用户权限运行.bat文件时,timeout命令无法正常执行,导致命令行循环回到文件开头。解决办法是使用管理员权限运行批处理文件。文章提醒用户注意批处理命令的权限需求,特别是涉及到系统级别的操作时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

做一个延时执行的批处理命令,选用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

双击运行后出现以下界面;
在这里插入图片描述
一直在重复打印时间;
然后我把回显打开后发现;

::@echo off

代码每次运行到timeout这里都没有执行,然后就跳到文件的第一行去了;
在这里插入图片描述

解决方案

使用管理员权限运行就不会重新跳到第一行
在这里插入图片描述

总结

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

免责声明:本文系网络参考,内容版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值