p.bat↓
====================我是分割线====================
@echo off
for /f %%a in (ip.txt) do start /b ping %%a
pause
====================我是分割线====================
ip.txt↓
====================我是分割线====================
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.8
192.168.1.9
192.168.1.11
192.168.1.12
====================我是分割线====================
以上面为例,读取ip.txt中每行ip并用start打开进行ping。但如果要判断当读取到文本的最后一段ping时,则不使用start运行,而是直接ping 最后一行的192.168.1.12,应该如何实现?谢谢
效果示意:
====================我是分割线====================
start ping 192.168.1.1
start ping 192.168.1.2
start ping 192.168.1.3
start ping 192.168.1.4
start ping 192.168.1.5
start ping 192.168.1.11
start ping 192.168.1.12
start ping 192.168.1.13
start ping 192.168.1.8
start ping 192.168.1.9
start ping 192.168.1.11
ping 192.168.1.12
====================我是分割线====================
先提取最后一行行数,然后计算如果是最后一行就修改ping命令参数.
追问非常感谢你的回答。
其实刚才我也写了跟你思路一样的代码,但是因为水平有限,无法正常运行当我在读取文件进行计算是否最后一行时,无法进行计算
for /f %%j in (test.txt) do (
set /a hhh+=1
echo %hhh%
pause)
goto :l
会出现 ECHO 处于关闭状态。
这个是因为哪里出了问题呢?希望能得到你解答
这是因为for命令中不能使用在for命令中赋值的%hhh%这种变量,要使用!hhh!,需要启用延迟变量扩展.
setlocal enabledelayedexpansion