今天出于想知道对局域网内部有多少台主机,不想使用namp等工具,这里通过学习简单的批处理命令学会了,如何通过批处理命令去查看局域网有多少台主机
先给出答案
for \L %i in (1,1,254) do ping -w 2 -n 1 192.168.目标网段.%i
分析这一段代码,其实就是简单的脚步语言 这里面的\L,/L
是 for
命令的一个选项,表示创建一个 "从-到"(range)的数字序列,以便在循环中迭代这个范围内的数字。
-
for /L %i IN (1,1,254)
- 这部分表示一个for
循环,它将i
从1递增到254。%i
是循环变量,将在每次迭代中取不同的值。 -
ping -w 2 -n 1 192.168.1.%i
- 这是在for
循环内执行的命令。它使用ping
命令来尝试对 IP 地址192.168.1.%i
发送一个数据包。-
-w 2
表示等待2毫秒后停止 ping。 -
-n 1
表示只发送一个数据包。 -
192.168.1.%i
中的%i
将在每次循环中替换为循环变量的值,因此实际上会尝试 ping 多个 IP 地址,从192.168.1.1
到192.168.1.254
。 %i
是循循环变量,在每次迭代中它会取IN
后面指定的范围内的一个数字。(1,1,254)
表示循环的范围。它的意思是从 1 开始,以步长 1 增加,一直到 254 结束。这就是说,循环将迭代从 1 到 254 的所有整数。-
所以,
for /L %i IN (1,1,254)
表示循环变量%i
将在每次迭代中分别取值从 1 到 254 的整数。在每次迭代中,%i
的值将不断递增,以便执行相同的命令,但针对不同的数字。
-
这个命令通常用于扫描局域网内的设备,以查看哪些 IP 地址处于活动状态。如果某个 IP 地址处于活动状态,ping
命令将返回响应,否则将超时。
日常语法
我简单的收集了批处理的基本语法如下
批处理语言(如Windows批处理、Unix/Linux Shell脚本等)具有一些基本的语法元素,以下是其中一些常见的基本语法元素:
1,注释: 用于添加注释以解释脚本的目的或提供有关代码的说明。在大多数批处理语言中,注释以特定字符(如
REM
或#
)开头。例(Windows批处理):
REM 这是一个注释
例(Bash Shell):
# 这是一个注释
2,变量定义和赋值: 定义变量并将值赋给它们,以便在脚本中存储和使用数据。
例(Windows批处理):
set myVar=Hello
例(Bash Shell):
myVar="Hello"
3.输出和打印: 使用命令将文本消息打印到终端或文件,以便用户查看。
例(Windows批处理)
echo Hello, World!
例(Bash Shell):
echo "Hello, World!"
4.条件语句: 用于根据条件执行不同的命令块,通常使用if
语句。
例(Windows批处理)
if %myVar%==Hello (
echo Greetings!
) else (
echo Goodbye!
)
例(Bash Shell):
if [ "$myVar" = "Hello" ]; then
echo "Greetings!"
else
echo "Goodbye!"
fi
5.循环结构: 用于多次执行相同的命令块,通常使用for
或while
循环。
例(Windows批处理):
for /L %%i in (1,1,10) do (
echo %%i
)
例(Bash Shell):
for ((i=1; i<=10; i++)); do
echo $i
done
6,函数和子例程: 定义和调用函数或子例程以组织代码并实现可重用性。
例(Windows批处理):
:myFunction
echo This is a function
goto :eof
call :myFunction
例(Bash Shell):
myFunction() {
echo "This is a function"
}
myFunction
7.文件操作: 用于创建、复制、移动、删除文件等文件操作命令。
例(Windows批处理):
copy file1.txt file2.txt
del file1.txt
例(Bash Shell):
cp file1.txt file2.txt
rm file1.txt
其实感觉,bash shell 语言更具有高级语言的特性
windows里面的批处理里面的%%符号
在Windows批处理脚本中,%%
通常用于表示一个批处理变量。Windows批处理脚本使用%
作为变量的前缀,并在变量名前后加上%
来引用该变量。在for
循环中,为了防止与普通命令行变量(如%i
)混淆,需要使用%%
来表示循环变量。
例如,在以下Windows批处理中:
for /L %%i in (1,1,10) do ( echo %%i )
%%i
表示for
循环的循环变量,它的值从1到10依次递增。%%i
之前的%%
用于指示这是一个批处理变量。
在批处理脚本中,单个%
用于表示批处理变量,而%%
用于在for
循环等结构中引用循环变量,以防止变量名与普通环境变量冲突。
关于windos批处理一些常见的命令及一些功能
start
: 用于启动应用程序或打开文件。ping
: 用于测试网络连接和延迟。echo
: 用于在屏幕上显示文本。cd
:用于更改当前目录。mkdir
:用于创建新目录。del
:用于删除文件。copy
:用于复制文件。move
:用于移动文件或更改文件名。rename
:用于更改文件名。shutdown
:用于关闭计算机。taskkill
:用于终止正在运行的进程。find
:用于在文件中查找文本。ipconfig
:用于查看和配置网络信息。regedit
:用于打开注册表编辑器。schtasks
:用于计划任务和定时执行命令。net
: 用于管理网络连接和资源。sc
: 用于管理Windows服务。assoc
:用于关联文件扩展名与程序。ftype
:用于关联文件扩展名的操作。attrib
:用于更改文件和目录属性。
如果想要类似与快捷方式那样的去打开一个文件
就可以 写一个bat文件 例如 新建一个记事本 内容如下写 start "窗口标题“ " 想要打开文件的绝对路径\XXX.exe"即可,注意,不要在路径或者文件名里面出现中文字,因为在操作系统将bat脚步转化为编译的时候,底层的编译器不认识这个中文,底层的编译器应该不是unicode 可能就是ACSILL编码,