首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >睡在CMD -需要肮脏的解决办法

睡在CMD -需要肮脏的解决办法
EN

Stack Overflow用户
提问于 2021-12-01 16:50:15
回答 1查看 217关注 0票数 0

如果您在.cmd中编写了一些脚本,并且需要您的程序休眠,您通常有几个选项。你可以用

代码语言:javascript
运行
复制
ping -n 5 localhost > nul

代码语言:javascript
运行
复制
timeout /T 5 /NOBREAK > nul

或者从powershell调用Start-Sleep方法。

这是我的问题:所有这些方法都会产生额外的进程。例如,如果使用超时值方法,将创建以下进程:

平法也是一样。如果使用“开始-睡眠”,则会创建一个powershell进程。由于很难解释的原因(而且对其他人来说也不是很有趣),我无法做到这一点。无论如何,我必须确保我的..cmd脚本停止大约5秒。有人能想到一个肮脏的伎俩,做些什么,让..cmd Scrpt暂停大约5-7秒?唯一的要求是:(1)不产生子进程,(2)资源密集(CPU使用率不应过高)。

EN

回答 1

Stack Overflow用户

发布于 2021-12-06 13:32:30

你可以试试这个方法:

代码语言:javascript
运行
复制
    @echo off

    call :wait 5

    goto :eof

    :wait
    setlocal ENABLEDELAYEDEXPANSION
    set "HOW=%1"
    set "CNT=0"

    call :GetTime NOW

    :again
    call :GetTime NEXT
    if not "!NOW!" == "!NEXT!" (
        set /A "CNT+=1"
        set "NOW=!NEXT!"
    ) else (
        goto :again
    )
    if not "!CNT!" == "%HOW%" (
        goto :again
    )
    endlocal
    goto :eof
    
    :GetTime
    for /f "usebackq tokens=1,2,3,* delims=,: " %%a in ('%time%') do (
        set "%1=%%c"
    )
    goto :eof
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70188143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档