- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以将批处理文件延迟一秒钟,例如10毫秒吗?
我试图写这个:
ping localhost -n 1 -w 10
最佳答案
前段时间I posted a method提供了精确的定时,延迟间隔从15毫秒起。这是整个帖子的副本。
我认为我在延迟小的时候实现了毫秒级的延迟,并具有精确的定时。我使用了带有WScript.Sleep方法的混合Batch-JScript解决方案,但是为了避免每次使用JScript部分时的加载延迟,两个部分必须同时处于事件状态。 JScript进程以毫秒为单位进行延迟,执行延迟并将信号发送到Batch部分。批处理过程将毫秒数发送到JScript并等待信号。实现这种双向通信的方法是通过JScript的WshShwll.Exec方法访问批处理的Stdin和Stdout流。
@if (@CodeSection == @Batch) @then
@echo off
setlocal EnableDelayedExpansion
if defined restart goto secondPart
rem First part: execute JScript section, so it re-execute this Batch file
set restart=true
CScript //nologo //E:JScript "%~F0" "%~F0"
goto :EOF
:secondPart
rem To do a delay, use: "echo #millisecs" followed by "set /P ="; use "echo 0" to end
rem To display data in the screen, use: echo data > CON
rem To read data from keyboard, use set /P "data=Prompt: " < CON > CON
set runs=10
For %%t in (5 10 15 20 30 50 100 250 500 1000) do (
set time_idle_ms=%%t
(
set t0=!time!
for /L %%p in (1,1,%runs%) do echo %%t& set /P =
set t1=!time!
)
for /F "tokens=1-8 delims=:.," %%a in ("!t0: =0!:!t1: =0!") do (
set /a "a=(((1%%e-1%%a)*60)+1%%f-1%%b)*6000+1%%g%%h-1%%c%%d, a+=(a>>31) & 8640000"
)
set /a average_time=a*10/runs
echo(Input:!time_idle_ms! ms - Output: Average time !average_time! ms > CON
)
rem Send the signal to end JScript section
echo 0
goto :EOF
@end
// JScript section
// Restart this Batch file with access to its Stdin and Stdout streams
var WshShell = new ActiveXObject("WScript.Shell");
var BatchFile = WshShell.Exec('"'+WScript.Arguments(0)+'"'), delay;
// Get delay, wait and send CR until delay equ 0
while ((delay = BatchFile.Stdout.ReadLine()) != "0" ) {
WScript.Sleep(delay);
BatchFile.Stdin.WriteLine();
}
Input:5 ms - Output: Average time 15 ms
Input:10 ms - Output: Average time 16 ms
Input:15 ms - Output: Average time 15 ms
Input:20 ms - Output: Average time 32 ms
Input:30 ms - Output: Average time 31 ms
Input:50 ms - Output: Average time 63 ms
Input:100 ms - Output: Average time 109 ms
Input:250 ms - Output: Average time 250 ms
Input:500 ms - Output: Average time 500 ms
Input:1000 ms - Output: Average time 1000 ms
Input:5 ms - Output: Average time 14 ms
Input:10 ms - Output: Average time 16 ms
Input:15 ms - Output: Average time 15 ms
Input:20 ms - Output: Average time 31 ms
Input:30 ms - Output: Average time 32 ms
Input:50 ms - Output: Average time 61 ms
Input:100 ms - Output: Average time 110 ms
Input:250 ms - Output: Average time 250 ms
Input:500 ms - Output: Average time 501 ms
Input:1000 ms - Output: Average time 1000 ms
pathping
测试
pathping
和用于测试我的方法的相同代码进行了时序测试。这里是:
@echo off
setlocal EnableDelayedExpansion
set runs=10
For %%t in (5 10 15 20 30 50 100 250 500 1000) do (
set time_idle_ms=%%t
(
set t0=!time!
for /L %%p in (1,1,%runs%) do pathping 127.0.0.1 -n -q 1 -p %%t >nul
set t1=!time!
)
for /F "tokens=1-8 delims=:.," %%a in ("!t0: =0!:!t1: =0!") do (
set /a "a=(((1%%e-1%%a)*60)+1%%f-1%%b)*6000+1%%g%%h-1%%c%%d, a+=(a>>31) & 8640000"
)
set /a average_time=a*10/runs
echo(Input:!time_idle_ms! ms - Output: Average time !average_time! ms
)
pathping
是不可靠的:
Input:5 ms - Output: Average time 48 ms
Input:10 ms - Output: Average time 47 ms
Input:15 ms - Output: Average time 47 ms
Input:20 ms - Output: Average time 62 ms
Input:30 ms - Output: Average time 63 ms
Input:50 ms - Output: Average time 93 ms
Input:100 ms - Output: Average time 141 ms
Input:250 ms - Output: Average time 281 ms
Input:500 ms - Output: Average time 532 ms
Input:1000 ms - Output: Average time 1031 ms
关于batch-file - 在一秒钟内延迟批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29732878/
有什么办法(使用CSS)在最后一步之后将 Sprite 暂停一秒或多秒?我尝试再添加一个步骤或将相同的背景位置从 80% 增加到 100%,但没有成功。 .sprite { animation:
我正在使用 Flutter 创建一个新应用,并想在初始启动画面上添加自定义图像。 图像出现在初始屏幕上,但是在大约半秒钟内它看起来被拉伸(stretch)了,看起来不太好。 我一直在寻找,但一直找不到
我有一个状态: state = { showView: false, } 如何创建一个函数,在调用时将 showView 状态更改为 true 1 秒,然后将其更改回 false? 最佳答案 this
我有一个平滑的滚动效果: jQuery('html,body').animate({scrollTop:scrollTarget}, 1000, "swing"); 它工作正常,但是当按下多个元素时,
我似乎遇到了与我之前发布的问题相同的问题。我想隐藏默认情况下存在的所有 div,只显示一个。然后用户可以单击一个侧面选项卡以显示另一个。问题是 div 在页面加载后仅隐藏一秒钟,但很快就会重新出现。这
我是一名优秀的程序员,十分优秀!