批处理中的特殊字符问题
问题描述:
我无法解决的一个问题。批处理中的特殊字符问题
在我的/ f delims参数中,我有一个特殊字符<
,我的脚本没有注意到它。
此脚本为IT需求测试网络。它记录断开网络和速度。
set /p IP="IP : "
set /p MS="Millisecond : "
for /f "tokens=1,7 delims==< " %%a in ('ping.exe -w 1000 -n 1 %IP% ^| findstr /i /c:"temps"^|^| echo "Ne Repond Pas"') do (
if "%%b" == "" (
echo "%date% %time:~,8% Ne repond pas" >> log_%IP%.txt
) ELSE (
if %%b GEQ %MS% (
echo "%date% %time:~,8% ms=%%b" >> log_%IP%.txt
timeout /t 1 > NUL
)
)
)
goto loop
当ping结果是< 1ms时,它会登录该文件。当ping = 1ms或= 2ms时......它可以很好地工作。
我尝试在<
之前使用转义字符^
,但那不起作用。
如
Ping 8.8.8.8:日志文件是完美的,因为没有在结果
Ping 127.0.0.1<
:在文件中的脚本日志
感谢
答
感谢所有
我发现我的问题,并且F *** Windows ...
平安结果是slighlty不同的,当结果是更高<1ms
或类似=33 ms
注意的空间。
我刚刚适应我的
for /f "tokens=1,8 delims=m=^< " %%a in ('ping.exe -w 1000 -n 1 %IP% ^| findstr /i /c:"temps"^|^| echo "Ne Repond Pas"') do (
代码和它的作品
您将需要向我们展示了一些典型的输出线是“工作”或“不工作”,因为你显然不是使用英文(因此'ping'输出格式可能稍有不同)。我只是''将你的代码编辑为标准格式 - 我不知道'^ |^| echo ...'是什么 - 请解释一下。你是否在问题条件中使用'echo'显示'%% a'和'%% b'? – Magoo
@oasisck你在这里做什么来确定ping是否成功是可怕的。阅读[这个答案](https://stackoverflow.com/a/46707214/3074564)与批处理代码非常类似的任务,使用'ping'的退出代码进行记录和详细解释此代码的工作原理。 – Mofi
什么是%MS%'设置为?由于' aschipfl