welcome

windows批处理

 

 

echo off表示在此句后所有运行的命令不显示命令行本身;

@与echo off相似,表示运行时不显示命令行本身;

@echo off  不提供回显;

echo hello world   学习编程语言第一句话helloworld;

pause      暂停--类似C++system(“PAUSE”);

rem calc中rem表示此命令后的字符为注释行 

 

cmd下:

1.批处理ping一个网段

for /L %D in (10,1,15) do ping 192.168.1.%D

参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)

 (10,1,15)就是每次逐增1,从192.168.1.10到192.168.1.15的这6个ip。

C:\Users\ks>@echo off
for /L %D in (10,1,15) do echo 192.168.1.%D
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15


for %D in (10,1,15) do echo 192.168.1.%D
192.168.1.10
192.168.1.1
192.168.1.15

%表示参数,参数是指运行批处理文件时在文件名后加的字符串。变量可以从%0到%9,%0表示文件本身,字符串用%1到%9的顺序表示。

例如:c盘目录下批处理文件f.bat,内容为format %1,则执行C:\>f a:则执行的是format a: 

C:\Users\ks>for /?
对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

  %variable  指定一个单一字母可替换的参数。
  (set)      指定一个或一组文件。可以使用通配符。
  command    指定对每个文件执行的命令。
  command-parameters
             为特定命令指定参数或命令行开关。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

如果启用命令扩展,则会支持下列 FOR 命令的其他格式:

FOR /D %variable IN (set) DO command [command-parameters]

    如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
    如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
    则枚举该目录树。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

    该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列

 

 

 2.批处理ping一个网段,把结果保存在txt文本中

for /L %D in (175,1,179) do ping 192.168.1.%D >> a.txt

 a.txt:

正在 Ping 192.168.1.175 具有 32 字节的数据:
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。

192.168.1.175 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

正在 Ping 192.168.1.176 具有 32 字节的数据:
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。
来自 192.168.1.179 的回复: 无法访问目标主机。

192.168.1.176 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

.....

 

3.判断结果,把ip分别存不同的文本文件

for /l %D in (177,1,180) do (ping 192.168.1.%D -n 1 && echo 192.168.1.%D>> ok.txt || echo 192.168.1.%D >> fail.txt)

 

4.读取文件

for /f %D in (ip.txt) do (ping %D -n 1 && echo %D >> ok.txt || echo %D >> fail.txt

 

bat文件:

5.bat脚本

@echo off
echo begin
for /L %%D in (1,1,20) do start cmd&&echo %%D
pause

 

 

centos,可以用以下脚本

for i in {3..118}; do ping -c 2 10.10.160.$i ; done

posted on 2018-08-16 14:51  vanspumakappa  阅读(161)  评论(0编辑  收藏  举报

导航