Loading

hellohelp

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.特殊字符命令

  1. 管道符|:将第一条命令结果用于第二条命令的参数

    dir d:\ | find "it"
    
  2. &符号、&&符号、||符号

    • & 无论前边的命令成功失败,后边都会执行
    • && 当前边命令失败时,后边的不会执行,成功才执行
    • || 前边命令失败后才执行后边的命令
    
    

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文件里生成

批处理脚本来生成从 folder1folder20 的文件夹

@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
posted @ 2025-06-16 15:29  HordorZzz  阅读(62)  评论(0)    收藏  举报