如果您在.cmd中编写了一些脚本,并且需要您的程序休眠,您通常有几个选项。你可以用
ping -n 5 localhost > nul或
timeout /T 5 /NOBREAK > nul或者从powershell调用Start-Sleep方法。
这是我的问题:所有这些方法都会产生额外的进程。例如,如果使用超时值方法,将创建以下进程:

平法也是一样。如果使用“开始-睡眠”,则会创建一个powershell进程。由于很难解释的原因(而且对其他人来说也不是很有趣),我无法做到这一点。无论如何,我必须确保我的..cmd脚本停止大约5秒。有人能想到一个肮脏的伎俩,做些什么,让..cmd Scrpt暂停大约5-7秒?唯一的要求是:(1)不产生子进程,(2)资源密集(CPU使用率不应过高)。
发布于 2021-12-06 13:32:30
你可以试试这个方法:
@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 :eofhttps://stackoverflow.com/questions/70188143
复制相似问题