凡科网免费建站官网汕头建设信息网官网
批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat
- windos中不区分大小写
- DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令;cmd.exe 是一个 16 位的 DOS 应用程序
- PID 是 processid(进程号);IM 是 imaginename(映像名称)
- 在 .bat 文件开头加上
@echo off
代表不输出描述,比如C:\Users\14805\desktop>...
这样的描述不会输出,直接输出结果 - 设置变量
set a=10
,输出变量echo %a%
,设置变量表达式set /a b=%a%+1
批处理操作运算符
算数运算符
set /a
@echo off
set /a car=1+2
echo %car%
pause
/a是算数运算的标识,变量要用%隔开。
/p是交互开关,如界面读入变量。
重定向运算符
>>,>,<<,<
某条命令结果移交给下一条命令,或者将输出结果保存到某一个具体的文件当中。
>是重新输出的方式
>>是追加的方式
可以用type命令来查看文本的内容。
多命令运算符
- &&第一个命令错误不会执行第二条命令
- ||第一个命令执行成功不会执行第二条命令
管道运算符
A|B
第一个命令A的输出作为第二个命令B的输入
dir | find ".txt"
寻找当前文件夹下的txt文件。
批处理基本命令
批处理命令格式
主命令 子命令 参数 操作
/?获取命令帮助信息
/help 获取命令详细帮助信息
批处理接受参数
批处理中接受参数使用%num
bat中的内容
@echo off
net user %1 %2 /add
pause
在cmd中运行
.\test.bat World 123456
添加新用户信息
注释
rem和::
:: 两个冒号表示 cmd 的注释
rem 也表示 cmd 的注释
# 一个井号表示 powershell 的注释bat 文件内容:
echo "Hello World!"
pausecmd 运行指令:
test.bat
输出 "Hello World!"powershell 运行指令:
.\test.bat
输出 "Hello World!"
时间相关命令
date 输出 当前日期: 2023-07-27
date /T 输出 2023-07-27
time 输出 当前时间: 23:14:16.68
time /T 输出 23:14
poweshell 运行指令: date 输出 2023年7月27日 23:14:49
启动命令
start启动命令
call调用其他bat文件,可以传递参数。不停止父命令的运行。
详细区别
任务列表查看和终止
- 获取当前状态进程列表tasklist
- 关闭进程taskkill
详细使用方法使用/?或者/help查看
tasklist 获取进程列表获取指定要连接的远程系统的 tasklist
tasklist /S 192.168.0.1 /U admin /S password其他参数:/FI 用于筛选 /FO 输出指定格数
tasklist /FI "PID eq 3232" /FO csv > a.csvtaskkill 是关闭进程
taskkill /IM notepad.exe
文件夹结构命令tree
将文件夹的结构一种树形的结构展示出来
文件生成树
tree
输出
C:.
├───a
├───b
└───c换一种文件生成树
tree /A
输出
C:.
+---a
+---b
\---c详细文件生成树
tree /F
输出
C:.
├───a
│ a.txt
│
├───b
└───c
关闭计算机命令
shutdown
打开 GUI 执行远程主机关机的操作
shutdown /i关闭本地主机没有超时或警告
shutdown /p强制关闭正在运行的应用程序而不事先警告用户
shutdown /f
定时关机
shutdown /s /t 7200: 两个小时后关机。
shutdown /s /t 3600:1个小时后关机。
shutdown /s /t 10800:3个小时后关机。
shutdown /s /t 14400:4个小时后关机。以此类推,/t 后面是秒数。
环境变量设置
set
cmd 运行指令:
set
显示当前环境变量echo %OS%
输出环境变量值
输出 Windows_NT
文件夹以及文件相关命令
浏览文件目录
dir
dir /A 显示全部文件(包括隐藏文件)
文件的创建和删除
- mkdir创建目录,等价于md
- rmdir删除,等价于rd
mkdir /a/b/c/d
rem 先创建a文件夹再创建b...,最后再创建drd test1 /s /q
删除的文件夹下不为空时需要加/s,安静模式/q
重命名
ren
修改当前路径下文件夹的命名
目录的拷贝
copy
copy a b
将a文件夹下的文件拷贝到b文件下
删除文件
del
删除指定路径下的txt
del c/*.txt
移动文件
move可以实现移动和重命名功能
重命名文件
move test.txt test1.txt移动文件
move C:\a\test.txt C:\b\test.txt
网络相关命令
网络用户
查看网络用户
net user
修改计算机上的本地组(如设置为管理员组)
net localgroup
连通性检测与网络连接
检查网络连接
ping+域名网络连接
telnet ip地址 端口号查看ip地址
ipconfig
判断和循环结构
判断结构
1.
if () else ()2.
if (
) else (
)例:
判断文件是否存在
if exit D:\1.bat (echo ok
) else (echo no
)
循环结构
for 开关 %%命名 in (匹配规则或者地址) do
1. 循环文件夹# for /d %%名称 in (路径/*) do 具体操作.bat文件内容:打印当前文件夹下的所有文件夹
for /d %%a in (*) do echo %%a2.循环文件# for /r "目录文件" %%名称 in (匹配规则,例如 *.py) do 具体操作.bat文件内容:打印当前文件夹下的所有.py文件
for /r "D:\learn\1\abc" %%a in (*.py) do echo %%a3.循环数字# for /L %%a in (start,step,end) do 具体操作.bat文件内容:ping 168.0.0.1 至 168.0.0.20(传入参数 %1 等于 168.0.0)
for /L %%a in (1,1,20) do ping %1.%%a4.循环文件中的内容(按行读取)# for /F %%a in (文件名) do 具体操作.bat文件内容:打印test.bat中的内容
for /F %%a in (test.bat) do echo %%a
goto指令
重复重建子文件夹:loop
md vurse
cd vurse
goto loop
常用快捷键
清屏
cls显示当前目录
dir (cmd | powershell)
ls (powershell)打开当前文件夹
start .查找文件
dir *.txt (cmd | powershell)显示当前路径
pwd (powershell)中止运行
cntrol+c
具体案例
分离lib库种的debug文件和release文件
将lib文件的命名输出到txt中
@echo off
setlocal enabledelayedexpansionset "folder=D:\PCL\PCL 1.14.0\3rdParty\VTK\lib" REM 将路径/到/lib文件夹替换为实际的文件夹路径REM 清空输出文件
type nul > debug.txt
type nul > release.txtREM 遍历lib文件夹中的所有文件
for %%F in ("%folder%\*.lib") do (
REM 获取文件名和扩展名
set "filename=%%~nF"
set "extension=%%~xF"REM 检查文件名是否以"d"结尾
if "!filename:~-1!"=="d" (
REM 文件名以"d"结尾,将文件名写入debug.txt
echo !filename!!extension! >> debug.txt
) else (
REM 文件名不以"d"结尾,将文件名写入release.txt
echo !filename!!extension! >> release.txt
)
)echo "分离完成!"
参考资料
参考B站课程https://www.bilibili.com/video/BV1Qv411q7bN/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=637018ee4398d7b570f2e0cfeb34abf4
Windos自带的常用cmd命令。https://www.cnblogs.com/klchang/p/4771101.html