批处理(batch)学习笔记

批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat

  1. windos中不区分大小写
  2. DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令;cmd.exe 是一个 16 位的 DOS 应用程序
  3. PID 是 processid(进程号);IM 是 imaginename(映像名称)
  4. 在 .bat 文件开头加上 @echo off 代表不输出描述,比如 C:\Users\14805\desktop>... 这样的描述不会输出,直接输出结果
  5. 设置变量 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!"
pause

cmd 运行指令:
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.csv

taskkill 是关闭进程
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...,最后再创建d

rd 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 %%a

2.循环文件

# for /r "目录文件" %%名称 in (匹配规则,例如 *.py) do 具体操作

.bat文件内容:打印当前文件夹下的所有.py文件
for /r "D:\learn\1\abc" %%a in (*.py) do echo %%a

3.循环数字

# 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.%%a

4.循环文件中的内容(按行读取)

# 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 enabledelayedexpansion

set "folder=D:\PCL\PCL 1.14.0\3rdParty\VTK\lib" REM 将路径/到/lib文件夹替换为实际的文件夹路径

REM 清空输出文件
type nul > debug.txt
type nul > release.txt

REM 遍历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站课程icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Qv411q7bN/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=637018ee4398d7b570f2e0cfeb34abf4
Windos自带的常用cmd命令。icon-default.png?t=N7T8https://www.cnblogs.com/klchang/p/4771101.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值