批处理文件中的时间戳未正确更新

杰基·霍博

首先,我要说我是脚本新手...

我正在尝试创建一个可定期ping主机的批处理文件。目前,我只是在本地PC上进行测试。到目前为止,这是我得到的:

@echo off

set SERVERNAME=127.0.0.1
set limit=3

ECHO %date%, %time% Starting ping test to localhost>>c:\users\%username%\desktop\Pingtest.txt

for /l %%X in (1,1,%limit%) do (

ping %servername% -n 3 | FIND "Reply" >>c:\users\%username%\desktop\Pingtest.txt

echo %time% >>c:\users\%username%\desktop\Pingtest.txt

Timeout /t 5

)

Exit

但是,时间戳始终保持不变。它应显示为大约5秒后的时间(或设置了超时值的时间),但是与第一个时间戳相同。这是输出示例:

25/08/2015,  2:09:18.34 Starting ping test to localhost
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
 2:09:18.34 
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
 2:09:18.34 
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
 2:09:18.34 

有什么方法可以使其在适当的时间更新吗?

附带说明一下,“ / l %% X in ...”无法弄清楚应实际代替%% X的内容。从谷歌搜索等等,我已经看到人们使用不同的浏览器,但是似乎无法弄清楚它指的是什么。如果有人也可以让我知道这一点,将不胜感激。

谢谢

黑暗的东西

在某一点上,实际上每个批处理脚本的人都会陷入延迟的扩展陷阱。

基本上,当第一次运行批处理脚本时,%variable%格式中的变量将替换为其实际值。当您将代码放在代码块中时(例如,在(之间)),变量可能需要更新,但是不需要更新,因为变量的存在已被其值替换。要解决此问题,您可以将其放在setlocal enabledelayedexpansion脚本的顶部,然后使用!variable!格式-这告诉脚本这些内容需要保持可变。

@echo off
setlocal enabledelayedexpansion

set SERVERNAME=127.0.0.1
set limit=3

for /l %%X in (1,1,%limit%) do (
    ping %servername% -n 3 | FIND "Reply" >>c:\users\%username%\desktop\Pingtest.txt
    echo !time! >>c:\users\%username%\desktop\Pingtest.txt
    Timeout /t 5
)

另外,您要注意的%%X是,仅选择了要在for循环中使用的变量。它只能是一个字母长,并且基本上是批次变量区分大小写的唯一时间。在您的情况下,它可以是任何东西(%%X完全可以),因为您没有直接使用它,而只是使用它运行了三次代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

批处理文件功能中的变量未更新

来自分类Dev

如何通过批处理文件中的时间戳识别/获取文件?

来自分类Dev

根据时间戳将文件复制到批处理文件中

来自分类Dev

从时间戳中减去12小时(批处理文件)

来自分类Dev

批处理文件未正确读取标志

来自分类Dev

我的Dos批处理文件未正确设置输出

来自分类Dev

批处理文件未正确读取标志

来自分类Dev

批处理文件在Windows 10中无法正确运行

来自分类Dev

批处理文件中的比较结果不正确

来自分类Dev

如何在批处理文件中打印当前时间?

来自分类Dev

如何在批处理文件中打印当前时间?

来自分类Dev

Windows批处理文件中的部分代码未执行

来自分类Dev

更新批处理文件中的命令行参数

来自分类Dev

更新批处理文件中的命令行参数

来自分类Dev

批处理文件IF语句花费的时间

来自分类Dev

简单批处理文件未执行?

来自分类Dev

简单批处理文件未执行?

来自分类Dev

uiautomatorviewer 批处理文件未打开

来自分类Dev

从第二批中调用时,批处理文件的日志文件时间戳很奇怪,在筒仓中可以正常工作

来自分类Dev

从批处理文件更新mysql查询

来自分类Dev

如何使用批处理文件移动长时间未访问的文件?

来自分类Dev

使用新时间戳在循环中创建后重命名文件夹(不久)-批处理文件

来自分类Dev

使用新时间戳在循环中创建后重命名文件夹(不久)-批处理文件

来自分类Dev

批处理文件似乎无法正确调用其他批处理文件

来自分类Dev

对于批处理文件中的循环

来自分类Dev

在Powershell中执行批处理文件

来自分类Dev

在批处理文件中设置路径

来自分类Dev

在批处理文件中减去天数

来自分类Dev

在Java中运行批处理文件

Related 相关文章

  1. 1

    批处理文件功能中的变量未更新

  2. 2

    如何通过批处理文件中的时间戳识别/获取文件?

  3. 3

    根据时间戳将文件复制到批处理文件中

  4. 4

    从时间戳中减去12小时(批处理文件)

  5. 5

    批处理文件未正确读取标志

  6. 6

    我的Dos批处理文件未正确设置输出

  7. 7

    批处理文件未正确读取标志

  8. 8

    批处理文件在Windows 10中无法正确运行

  9. 9

    批处理文件中的比较结果不正确

  10. 10

    如何在批处理文件中打印当前时间?

  11. 11

    如何在批处理文件中打印当前时间?

  12. 12

    Windows批处理文件中的部分代码未执行

  13. 13

    更新批处理文件中的命令行参数

  14. 14

    更新批处理文件中的命令行参数

  15. 15

    批处理文件IF语句花费的时间

  16. 16

    简单批处理文件未执行?

  17. 17

    简单批处理文件未执行?

  18. 18

    uiautomatorviewer 批处理文件未打开

  19. 19

    从第二批中调用时,批处理文件的日志文件时间戳很奇怪,在筒仓中可以正常工作

  20. 20

    从批处理文件更新mysql查询

  21. 21

    如何使用批处理文件移动长时间未访问的文件?

  22. 22

    使用新时间戳在循环中创建后重命名文件夹(不久)-批处理文件

  23. 23

    使用新时间戳在循环中创建后重命名文件夹(不久)-批处理文件

  24. 24

    批处理文件似乎无法正确调用其他批处理文件

  25. 25

    对于批处理文件中的循环

  26. 26

    在Powershell中执行批处理文件

  27. 27

    在批处理文件中设置路径

  28. 28

    在批处理文件中减去天数

  29. 29

    在Java中运行批处理文件

热门标签

归档