CMD批处理命令教程
CMD批处理命令教程
[TOC]
在命令行中,单个%
用于表示变量或参数,而在批处理(.bat)文件中,需要使用两个连续的%
(即%%
)来表示变量或参数。这是因为批处理文件在处理时会将%
作为特殊字符进行解析(这一点在37中生成文件夹有体现,一个是命令行生成,一个是bat脚本生成)
✅单独命令
0. /?表示查看命令的帮助
1. md 创建文件夹
md d:\relax
2.@echo off :隐藏命令内容
加@可以隐藏echo off 本身
3.cls 清除窗口命令,cals打开计算器
这些都是内部命令
4.外部命令
打开指定文件夹下的命令(放在c:\windows\system32下,放在其他文件夹下要加环境变量),有环境变量的就可以直接使用了。如mstsc远程桌面。内部命令是系统自带的如:dir\copy\mv等
5.set 命令
显示、设置或删除 cmd.exe 环境变量。
算术运算-命令模式:set /a 1+3 ;set /a var=1+3 set也就是命令模式 /a是执行算术运算
算术运算-文本模式:在bat文本上写入
@echo off
set /a var=1+3
echo %var% 打印变量
pause > nul 暂停脚本的执行,直到用户按下任意键,但与普通的`pause`命令不同的是,它不会在命令行窗口显示“请按任意键继续...”的提示信息
set /p 是Windows批处理脚本中的一个命令,用于从用户那里获取输入。它的基本语法是
set /p variable=[promptString]
6.自定义dos窗口:
title cmd demo 命名窗口名字;mode 80,40 宽度80,高度40;color 07 背景黑色,字体白色,第一位第二位数字分别代表背景色和字体色。
7.ping命令
ping -t 一直ping;ping -a 将地址解析为主机名称,如
ping -a 192.168.241.212
正在 Ping LAPTOP-5QG0QD87 [192.168.241.212] 具有 32 字节的数据:
来自 192.168.241.212 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.241.212 的回复: 字节=32 时间<1ms TTL=128
LAPTOP-5QG0QD87就是主机名
8.rem 注释说明
命令相当于python中的#号键
::也是注释说明命令号;
exit 跳出窗口命令;
9.goto跳转命令
@echo off
:: 以下是主题部分
echo hello world
goto part1 :: 跳转到part1
:part1
echo i am ready
rem 以下即将结束
pause
10.start 命令
打开程序、窗口、文件夹、文件、网址链接 等
start d:
start /MIN d: 以最小化方式启动窗口。
start /MAX d: 以最大化方式启动窗口。
start 路径有空格,要在空格的地方加引号
11.sort排序(不改变源文件)
sort demo.txt
sort /n+ demo.txt ::从第n项开始排序
sort /r demo.txt ::倒序排序
sort demo.txt > 1.txt ::重定向到1.txt文件中去
type 1.txt ::打印出来1.txt,和echo的区别在于echo显示消息或将命令回显打开或关闭
:: type用于显示文本文件的内容
12.重定向 :操作符有> 、>>、 <
- 符号>
ping www.baidu.com > d:\tt.txt
- 符号>> 是在文件上进行增加,不会覆盖原来的文件
- 符号<从文件读取
句柄的数字代码描述:
dir > right.txt 2>erro.txt ::2用来出现错误的时候的句柄,如果命令出错,将错误定向到erro.txt中去
13.telnet远程网络通信协议
查看端口是否可访问
telnet www.baidu.com 8080
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-l 指定远程系统上登录用的用户名
14.特殊字符命令
管道符|:将第一条命令结果用于第二条命令的参数
dir d:\ | find "it"
&符号、&&符号、||符号
- & 无论前边的命令成功失败,后边都会执行
- && 当前边命令失败时,后边的不会执行,成功才执行
- || 前边命令失败后才执行后边的命令
15.diskpart 硬盘管理命令
convert 命令 将FAT卷转换为NTFS。
diskpart
16.磁盘修复
- chkdsk 检查磁盘
17.修复系统 sfc
sfc /scannow
18.激活操作系统slmgr
slmgr /?
slmgr /xpr ::查看激活信息
slmgr /dli ::查看激活信息
slmgr /ipk 密钥 ::安装密钥
slmgr /ato ::成功的激活产品
19.wget 爬虫命令
将wget.exe 放到c:\windows\system32中才可以使用。
支持断点下载、同时支持ftp和http下载方式,支持代理服务器,程序小,完全免费。
-o 输出文件;-i 从指定文件中取得URL;-r 下载整个网站、目录;-l 下载层次
wget www.baidu.com -o d:\
20.reg注册表操作命令
(reg query 查询,red add增加,reg delete 删除,reg export导出reg结尾文件 ,reg import导入reg文件)可以写入脚本,同样环境变量也可以写入脚本吧。
reg query HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
21.netstat 查看网络状态
netstat -a 查看所有tcp\udp链接
netstat -n
netstat -ano
netstat -ano | findstr 62537 ::查找端口62537被哪个进程占用
tasklist | findstr 5772 ::查找进程5772被哪个任务使用,tasklist列举任务进程
taskkill /im /f 360se.exe ::杀死任务进程,/f 强制,
taskmgr ::打开任务管理器。
22.net user 查找有哪些用户
net user user222 /add 添加用户
net user user222 /del 删除用户
net user user333 /active:no 禁用账户user333
net user user333 /active:yes 启用账户user333
net localgroup administrators user444 /add ::将user444加入到administrators管理员组
23.net share 查找共享
net share 查找所有共享盘
net share e=E:/ 共享E盘
net share e /del
net view \\主机名 查找特定主机共享。
net stop "DHCP Client" 停止服务,写出服务名字,通过services.msc看名字
net start "DHCP Client"
24.netsh 网络配置命令行工具
是network shell缩写,修改ip\网关、dns等
netsh dump > f:\3.txt ::备份网络配置
netsh
netsh>int ip ::int ip是配置网络地址的子命令
netsh interface ipv4>set address name="WLAN" source=static addr=192.168.43.10 mask=255.255.255.0 ::改ip地址source如果是dhcp那就是动态获取。
25.netsh 修复网络故障
netsh winsock reset 令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。
netsh int ip reset c:\resetlog.txt 重置TCP/IP协议,
26.netsh 防火墙设置
(advfirewall防火墙高级模式,firewall防火墙简单模式)
netsh firewall set portopening TCP 3389 ENABLE 允许3389过防火墙
netsh firewall delete portopening TCP 3389
netsh advfirewall firewal add rule name=baidujingyan dir=in action=allow protocol=TCP localport=3389 ::in进站规则,
netsh advfirewall firewal delete rule name=baidujingyan protocol=TCP localport=3389删除规则
netsh advfirewall set allprofiles state off ::关闭防火墙
27.netsh获取wifi密码
netsh wlan show profiles 查看当前已经保存的网络
netsh wlan show profile name="iqoo z6" key=clear 获取指定wifi的密码。key=clear:显示网络安全密钥
28.net use用法:建立删除网络连接
net use ::查看当前网络连接
net use [设备名] [共享路径] /user: 用户名 [密码] ::建立网络连接
net use Z: \服务器名共享文件夹 /user: 用户名 [密码] ::映射网络驱动器
net use Z: /delete ::删除网络驱动
net use * /delete ::Net use来清除已保存的所有映射目录或连接路径 加/y直接删除,不会询问
net use * /delete /y
29.管理员权限运行runas(run as)
runas /user:hostname\Administrator /sa "程序路径" ::以管理员权限运行程序
30.恶意执行程序
@echo off
start cmd ::cmd换成其他程序可以让其他程序一直启动,导致电脑死机。
%0
31.死亡之ping
ping -l 64 192.168.5.1 发送大小64字节
拒绝服务攻击。让l 变很大,最大65500
32.bat2exe工具
将脚本变成exe可执行程序
33.自解压间接格式转换
将bat文件进行压缩格式写成.exe,高级里边写上解压路径、提取的程序路径。
✅组合命令
34.实现搜索(用户输入内容,进行搜索)
@echo off
set /p var=输入要搜索的内容
start http://www.baidu.com/s?wd=%var%
pause >nul >nul是一个重定向操作,它将pause命令的输出发送到空设备(null device),这意味着输出被丢弃,不会显示在屏幕上
35.实现通信录查询
@echo off
title 员工记录表
:start
set /p var=输入员工名称
type demo.txt | findstr %var%
if %var%=exit (goto end) else (goto start)
:end
exit
pause >nul
36.查找指定后缀文件
@echo off
for /r f:\ %i in (*.txt) do echo %i
写成bat脚本要用两个%。
37.批量生成文件夹
- 命令行里批量生成
cd /d D:\example
for /l %i in (1,1,30) do mkdir folder%i
- 脚本bat文件里生成
批处理脚本来生成从 folder1
到 folder20
的文件夹
@echo off
setlocal enabledelayedexpansion
:: setlocal enabledelayedexpansion 主要用于在批处理脚本中实现变量的动态更新和引用,
:: 特别是在循环和其他需要动态变量值的情况下非常有用。
rem 设置目标路径
set "targetPath=C:\path\to\your\destination"
for /L %%i in (1, 1, 20) do (
set "folderName=!targetPath!\folder%%i"
if not exist "!folderName!" mkdir "!folderName!"
)
echo 文件夹创建完成。
pause
38.attrib隐藏文件文件夹
attrib +h f:\it 隐藏文件夹it
attrib -h f:\it 显示文件夹it
diskpart
diskpart>list disk
diskpart>select disk1
diskpart>detail disk 查看磁盘1的分区
diskpart>select pattition 3 选择分区卷3
39.切换IP地址
@echo off
set /p var=输入IP地址
ping -n 2 %var%
pause >nul
访问ip段内所有ip看哪些ip被占用(脚本bat文件)
@echo off
for /L %%i in (1,1,254) do ( ping -n 1 192.168.1.%%i | find "TTL=" >>ocupid.txt )
@echo off
for /L %%i in (1,1,254) do (
ping -n 1 192.168.1.%%i | find "Request timed out" >> free_ips.txt
)
echo "IP地址扫描完成,未被占用的IP地址已保存到free_ips.txt文件中。"
40.清理系统垃圾:del / rd
@echo off ::/f:强制删除只读文件
echo 请勿关闭本窗口,正在清理垃圾文件 ::/s:递归子目录
del /f /s /q %systemdrive%\*.tmp ::/q:安静模式,删除时不要求确认
del /f /s /q %windir%\prefetch\*.* ::windir指的是C盘下的Windows目录
rd /s /q %windir%\temp & md %windir%\temp ::rd是删除文件夹,并创建空文件夹
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
41.拷贝多个0-7文件到不同文件夹
@echo off
setlocal enabledelayedexpansion
set "source=C:\path\to\folder0-7" <!-- 修改为文件夹0-7的实际路径 -->
set "target=C:\path\to\target" <!-- 修改为要拷贝到的目标目录 -->
set "count=1"
for /r "%source%" %%f in (0-7-0.txt) do (
set "filename=%%~nxf"
mkdir "%target%\0-7-0-!count!"
copy "%%f" "%target%\0-7-0-!count!\"
set /a count+=1
)
echo 文件拷贝完成!
pause
42.设置环境变量
- 系统环境变量
@echo off
echo 设置用户环境变量
setx test1 "D:\ff"
echo 设置系统环境变量
setx /M test2 "D:\dd"
pause
- cmd添加PATH系统环境变量
@echo off
setx PATH "%PATH%;E:\insist" /M
echo 环境变量已添加:E:\insist
pause
- powershell中设置环境变量
@echo off
echo 设置用户环境变量
powershell [system.Enviroment]::SetEnvironmentVariable("MY_VAR","value","user")
powershell [system.Enviroment]::SetEnvironmentVariable("U_VAR","value","Machine")
pause