【发布时间】:2019-07-22 18:20:41
【问题描述】:
这行代码是我之前在网上找到的,我已经用过很多次了。它按名称或地址 ping 给定服务器,并在输出中添加日期和时间戳,然后将其发送到文本文件。
如果我将它复制并粘贴到命令行中,它可以完美运行,但在命令文件 (.cmd) 中它不起作用。
我知道自己唯一要做的就是给变量双“%%”符号,我做到了。
这是我的代码:
CLS
@echo off
setlocal EnableDelayedExpansion
:start
set /p server=Enter the server name you wish to run a continuous ping of:
echo %server%
if exist \\%server%\c$ goto ping
echo THIS SERVER IS OFFLINE OR DOES NOT EXIST
echo VERIFY NAME ENTERED AND TRY AGAIN
pause
goto start
:ping
echo %server%
ping -t %server%|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 %server%>nul" >C:\%server%_ping.txt
:end
【问题讨论】:
-
忽略“echo %server%”的东西,我添加它只是为了跟踪我在代码中的位置。它没用,与问题无关。
-
另外,我确实得到了文本文件的输出,但它只是日期和时间戳。我没有在文本输出中显示 ping 结果。
-
不确定,但我猜
pause命令可能会“吞下”生成的ping文本... -
感谢您的建议。我删除了它,但它没有任何区别。
-
无限
for /L循环有什么用?
标签: batch-file for-loop ping